python—集合
Posted zhouyuan666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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}
以上是关于python—集合的主要内容,如果未能解决你的问题,请参考以下文章