zoukankan      html  css  js  c++  java
  • Day8 Python基础之遗漏知识点(六)

    1. 遗漏知识点

    深、浅拷贝:   http://www.cnblogs.com/yuanchenqi/articles/5782764.html

    a=b:

    浅拷贝: 

    深拷贝

    集合(set)

    集合的定义和应用

    集合是一个无序的不重复的数据组合,它的主要作用如下:

        • 去重,把一个列表变成集合,就自动去重了
        • 关系测试,测试两组数据之前的交集、差集、并集等关系
        • 集合对象是一组无序排列的可哈希(python中不可变的对象都是可哈希的)的值:集合成员可以做字典的键
        • 集合本身是不可哈希的,不能用作字典的键

    :因为集合是无序的,所以只能通过迭代器或for循环取出其中的值

    有关集合的一些操作(增删改查)

    1.创建集合:可变集合set()和不可变集合frozenset()

    2.访问集合:由于集合本身是无序的,所以不能为集合创建索引或切片操作,只能循环遍历或使用in、not in来访问或判断集合元素。

    s1=set('hello')
    s2=set(['hello',1,2])
    print('h' in s1)
    print('h' in s2)
    True
    False
    View Code

    3. 更新集合:

    可使用以下内建方法来更新:

    s.add()  #添加一个元素
    s.update()  #添加多个元素
    s.remove()  #删除指定元素

    s.pop()  #随机删除某一元素

    s.clear()  #清空集合

    注意只有可变集合才能更新:

    1 a=set([1,2,3,'hello'])
    2 print(type(a))
    3 a.add('uu')
    4 a.add('u')
    5 print(a)
    6 结果:{1, 2, 3, 'u', 'hello', 'uu'}
    s.add()
    1 a=set([1,2,3,'hello'])
    2 print(type(a))
    3 a.update('HO')
    4 a.update('MM')
    5 a.update([1,'MM'])
    6 print(a)
    7 结果:{1, 2, 3, 'hello', 'H', 'MM', 'O', 'M'}
    s.update()

    4. 删除集合

      del

    集合关系测试 

    1 in ,not in
    2 集合等价与不等价(==, !=)
    3 子集(a<b)、超集(b>a)

      子集(issubset) 超集(issuperset)

    1 print(set('venus')==set('venusnusnus'))
    2 True
    3 print(set('venus')<set('venus'))
    4 False
    5 print(set('venus')<set('venusyo'))
    6 True
    123

    4.并集(I)

      并集(union)操作也就是数学中的并集合运算,联合符号有个等价的方法,union()。

    5.交集(&)

     交集(intersection)也就是数学中的交集运算,交集符号的等价方法是intersection()

    1 print(set('abc') & set('bcd'))
    2 print(set('abc') | set('bcd'))
    3 结果:{'c', 'b'}
    4        {'c', 'd', 'b', 'a'}  
    联合、交集

    6.差集(-)

     差集(difference)a-b=in a but not in b=a-a&b;b-a=in b but not in a=b-a&b

    7.对称差集(^)

     对称差集(symmetric_difference)a^b=a|b-a&b 

     1 a=[1,2,3]
     2 b=[3,4,5]
     3 print(set(a).union(set(b)))
     4 print(set(a).intersection(set(b)))
     5 print(set(a).difference(set(b)))
     6 print(set(a).symmetric_difference(set(b)))
     7 结果:
     8 {1, 2, 3, 4, 5}
     9 {3}
    10 {1, 2}
    11 {1, 2, 4, 5}
    View Code

           注:既可以使用符号也可以使用集合的方法

     

      

     

     

     

  • 相关阅读:
    The Sixth Assignment
    The fifth assigiment
    网络编程
    面向对象
    python数据类型之集合
    python数据类型之列表
    python数据类型之字符串
    python数据类型之字典
    python数据类型之元组
    常用模块
  • 原文地址:https://www.cnblogs.com/weinapang/p/9152748.html
Copyright © 2011-2022 走看看