Python-集合,,集合中的元素必须可h
Python-集合,,集合中的元素必须可h
集合中的元素必须可hash
集合具有去重性,一个集合中没有两个相同的元素
集合是无序的(集合中的元素没有先后之分),如集合{1,2,3}和{3,2,1}是同一个集合
定义一个集合
>>> num = {1,2,4,3,7,5}>>> num{1, 2, 3, 4, 5, 7}>>> num1 = set([2,4,6,1,2,9,8])>>> num1{1, 2, 4, 6, 8, 9}
集合添加元素
>>> num{1, 2, 3, 4, 5, 7}>>> num.add(9) # 添加元素,一次只能添加一个>>> num{1, 2, 3, 4, 5, 7, 9}>>> num1{1, 2, 4, 6, 8, 9}>>> num.update(num1) # 把num1集合中的所有元素添加到num集合中>>> num{1, 2, 3, 4, 5, 6, 7, 8, 9}>>> num.update([10,11,12,13])>>> num{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} # 使用update方法添加多个元素
集合的删除方法
>>> num{1, 2, 3, 4, 5, 7, 9}>>> num.pop() # 随机删除集合中的一个元素1>>> num.pop()2>>> num{3, 4, 5, 7, 9}>>> num.remove(7) # 指定删除集合中的元素>>> num{3, 4, 5, 9}>>> num.remove(7) # 如果集合中没有这个元素就会报错Traceback (most recent call last): File "<stdin>", line 1, in <module>KeyError: 7>>> num{3, 4, 5, 9}>>> num.discard(4) # 指定删除集合中的元素>>> num{3, 5, 9}>>> num.discard(4) # 如果集合中没有这个元素,不会报错>>> num{3, 5, 9}>>> num.clear() # 清空集合中的元素>>> numset()
集合的复制
>>> num = {1,2,4,3,7,5}>>> num1 = num # 通过赋值来复制,如果原集合发生改变,复制的集合也会发生改变>>> num1{1, 2, 3, 4, 5, 7}>>> num.add(9)>>> num{1, 2, 3, 4, 5, 7, 9}>>> num1{1, 2, 3, 4, 5, 7, 9}>>> num = {1,2,4,3,7,5}>>> num1 = num.copy() # 深度copy,原集合发生改变,复制的集合不会发生改变,两个集合变得没有关系了>>> num1{1, 2, 3, 4, 5, 7}>>> num.add(9)>>> num{1, 2, 3, 4, 5, 7, 9}>>> num1{1, 2, 3, 4, 5, 7}
并集
并集:两个集合所有元素的集合
有两个方法,一个是用union()方法,一个是用“|”符号
>>> num{1, 2, 3, 4, 5, 7}>>> num1{1, 2, 4, 6, 8, 9}>>> num.union(num1){1, 2, 3, 4, 5, 6, 7, 8, 9}>>> num|num1{1, 2, 3, 4, 5, 6, 7, 8, 9}
差集
差集:在一个集合中但不在另一个集合中的元素
有两个方法,一个是difference()方法,一个是“-”符号
>>> num{1, 2, 3, 4, 5, 7}>>> num1{1, 2, 4, 6, 8, 9}>>> num.difference(num1) # 在集合num中却不在集合num1中的元素{3, 5, 7}>>> num - num1 # 在集合num中却不在集合num1中的元素{3, 5, 7}>>> num1.difference(num) # 在集合num1中却不在集合num中的元素{8, 9, 6}>>> num1 - num # 在集合num1中却不在集合num中的元素{8, 9, 6}>>> num.difference_update(num1) # 把在集合num中却不在集合num1中的元素赋给集合num>>> num{3, 5, 7}
对称差集
对称差集:两个集合中,只在一个集合和只在另一个集合里的元素
有两个方法,一个是symmetric_difference()方法,一个是“^”符号
>>> num{1, 2, 3, 4, 5, 7}>>> num1{1, 2, 4, 6, 8, 9}>>> num.symmetric_difference(num1) # 只在集合num中和只在集合num1中的元素{3, 5, 6, 7, 8, 9}>>> num ^ num1 # 只在集合num中和只在集合num1中的元素{3, 5, 6, 7, 8, 9}>>> num.symmetric_difference_update(num1) # 把只在集合num中和只在集合num1中的元素赋给集合num>>> num{3, 5, 6, 7, 8, 9}
交集
交集:在一个集合中,也在另一个集合中的元素
有两个方法,一个是intersection()方法,一个是“&”符号
>>> num{1, 2, 3, 4, 5, 7}>>> num1{1, 2, 4, 6, 8, 9}>>> num.intersection(num1) # 集合num和集合num1的交集{1, 2, 4}>>> num & num1 # 集合num和集合num1的交集{1, 2, 4}>>> num.intersection_update(num1) # 把集合num和集合num1的交集赋给集合num>>> num{1, 2, 4}
集合关系的判断
判断两个集合是否相等
>>> num{1, 2, 3, 4, 5, 7}>>> num1{1, 2, 4, 6, 8, 9}>>> num == num1 # 判断集合num和集合num1是否相等False>>> num != num1 # 判断集合num和集合num1是否不相等True
判断元素是否在集合中
>>> num{1, 2, 3, 4, 5, 7}>>> 1 in num # 判断元素1是否在集合num中True>>> 6 in num # 判断元素6是否在集合num中False>>> 1 not in num # 判断元素1是否不在集合num中False>>> 6 not in num # 判断元素6是否不在集合num中True
判断集合是否相交
>>> num{1, 2, 3, 4, 5, 7}>>> num1{1, 2, 4, 6, 8, 9}>>> num2{8, 9}>>> num.isdisjoint(num1) # 判断集合num和集合num1是否不相交False>>> num.isdisjoint(num2) # 判断集合num和集合num2是否不相交True
判断集合的包含关系
>>> num{1, 2, 3, 4, 5, 7}>>> num1{1, 2, 3}>>> num.issuperset(num1) # 判断集合num是否包含集合num1True>>> num >= num1 # 判断集合num是否包含集合num1True>>> num1.issubset(num) # 判断集合num1是否被集合num包含True>>> num1 <= num # 判断集合num1是否被集合num包含True
Python-集合
相关内容
- Python3基础 hasattr 测试一个对象是否有指定的属性,,镇
- Python 之try...except...错误捕捉,,导入:lib下面的模
- python3调用exe程序编写cve20190708批量检测工具,,1、pyth
- ubuntu中python3安装package,,1.实验环境Ubun
- python3-特征值,特征向量,逆矩阵,,import num
- python中的进程池和线程池,,Python标准模块
- 使用cython库对python代码进行动态编译达到加速效果,
- python中的*和**的用途,,deffunctio
- python: 多态与虚函数;,,通过python的a
- /和//的区别(python),,/ 除得到的是浮点数
评论关闭