python—集合

    ——集合:  (集合中的元素都不相同,无序,且不可变)  (花括号括起来)

                【1】定义集合

1 直接定义:
2 s={1,2,3,(4,5),"zhouyuan"}
3 使用系统内置函数set定义:
4 s=set('hello')    
5 print(s)      #去除重复
6 #运行结果:{'o','h','l','e'}

               【2】集合常用方法

                      (1)添加元素: add()

1 s={1,2,3,4,5,6}
2 s.add('s')
3 s.add(5)
4 print(s)
5 #运行结果:{1,2,3,4,5,6,'s'}

                      (2)清空: clear()

                      (3)复制: copy()

                      (4)删除: pop()    [不可以传值,直接随机删除一个元素]

                                    remove()  [可以传值,可指定删除某个元素,如不存在报错]

                                    discard()  [可以删除某个元素,如不存在不会报错]

 1 s={1,2,3,'zy'}
 2 s.pop()
 3 print(s)
 4 #运行结果:{1,3,'zy'}   (随机删除某个元素)
 5 t={1,2,3,'zy'}
 6 t.remove('zy')
 7 print(t)
 8 #运行结果:{1,2,3}
 9 t.remove(6)
10 print(t)
11 #报错
12 k={1,2,3,'zy'}
13 k.discard('zt')
14 print(k)
15 #运行结果:{1,2,3,'zy'}

                      (5)求差集并更新  difference_update()

1 a_s={1,2,3,4}
2 b_s={3,4,5,6}
3 a_s.difference_update(b_s)      #相当于a_s=a_s-b_s
4 print(a_s)
5 #运行结果:{1,2}

                      (6)判断集合是否有公有的部分   isdisjoint()

1 a_s={1,2,3}
2 b_s={2,3,4}
3 print(a_s.isdisjoint(b_s))     #有公共部分就是False,没有就是True
4 #运行结果:False

                       (7)判断两个集合是否为包含关系   issubset()[前面是否是后面的子集]    issuperset()[前面是否为后面的父集]

1 a_s={1,2,3}
2 b_s={1,2}
3 print(b_s.issubset(a_s))
4 #运行结果:True

                       (8)更新多个值  update()

 1 a_s={1,2,3}
 2 b_s={4,5,6}
 3 a_s.update(b_s)
 4 print(a_s)
 5 #运行结果:{1,2,3,4,5,6}
 6 
 7 a_s={1,2,3}
 8 a_s.update((3,5))      #可迭代的都可以
 9 print(a_s)
10 #运行结果:{1,2,3,5}

                【3】集合并,交,差关系运算:

 1 #求交集
 2 a_s={1,2,3,4}
 3 b_s={3,4,5,6}
 4 print(a_s.intersection(b_s))     #intersection() 求交集
 5 print(a_s&b_s)      #& and 求交集
 6 #运行结果:{3,4}
 7 
 8 #求并集
 9 a_s={1,2,3,4}
10 b_s={3,4,5,6}
11 print(a_s.union(b_s))      #union() 求并集
12 print(a_s|b_s)     #| 并 求并集
13 #运行结果:{1,2,3,4,5,6}
14 
15 #求差集
16 a_s={1,2,3,4}
17 b_s={3,4,5,6}
18 print(a_s.difference(b_s))      #difference() 求并集
19 print(a_s-b_s)    #- 减 求差集
20 #运行结果:{1,2}

                 【4】集合的交叉补集

1 a_s={1,2,3,4}
2 b_s={3,4,5,6}
3 print(a_s.symmetric_difference(b_s))      #symmetric_difference() 交叉补集
4 print(a_s^b_s)      # ^ 交叉补集
5 #运行结果:{1,2,5,6}

 

原文地址:https://www.cnblogs.com/zhouyuan666/p/9432330.html