python中的集合怎样理解,常用集合命令有哪些?
这篇文章我们来了解python中的集合的相关内容,集合的知识是Python学习中的基础知识,下文将介绍合集的一些常用命令及关系运算,文中示例代码介绍的非常详细,对大家学习python中的集合有一定的帮助,那么感兴趣的朋友接下来一起跟随小编了解看看吧。
集合 (set)
1、由不同的元素组成,用{ } 大括号括起来,用,逗号隔开
2、无序的
3、集合中的元素必须是比可变类型
4、集合会自动去重
例如:s = { 1,2,3,4,5,6} #这就是一个集合
5、合集是可变的 但是可以通过参数frozenset变成不可变的集合
s = { 1,'2',3,4,5,6} print(s) #{ '2', 1, 3, 4, 5, 6} a = frozenset(s) #不可变 print(a) #frozenset({ '2', 1, 3, 4, 5, 6} )
一 、合集的一些常用命令
1、set 定义合集
s = set('adam') print(s) #{ 'm', 'a', 'd'}
可以看到输出结果是 乱序的 而且 已经去重了,并且它已经把原来的字符串 打散到了最小单位
2、add 添加元素
s = { 1,2,3,4,5,6} s.add('3') #添加了一个str类型的 3 print(s) #{ 1, 2, 3, 4, 5, 6, '3'} s.add(('4', 'a', 'b', 'c')) print(s) #{ 1, 2, 3, 4, 5, 6, ('4', 'a', 'b', 'c'), '3'}
1、如果添加的是的集合里面原本就含有的元素,那么就会被自动去重
2、被添加的元素是 被乱序放入的 也就是说集合本身是乱序的
3、如果被添加的是 多个元素 那么 集合会把他们视为一个元素 打包插入,只有元祖可以插入,列表和字典不行
3、clear 清空
s = { 1,2,3,4,5,6} s.clear() print(s) #set()
4、pop 随机删除一个元素
s = { 1,2,3,4,5,6,7} s.pop() print(s) #{ 2, 3, 4, 5, 6, 7}
5、remove 指定删除
s = { 1,2,3,4,5,6} s.remove(3) print(s) #{ 1, 2, 4, 5, 6}
PS:找不到匹配要删除的字符就会报错
6、discard 指定删除
s = { 1,2,3,4,5,6} s.discard(7) print(s) #{ 1, 2, 3, 4, 5, 6}
PS:找不到匹配要删除的字符不会报错
二、关系运算
1、交集 找到两个集合相同的元素
s = { 1,2,3,'m', 'a', 'd'} s1 ={ 1,'2',3,'m', 'd'} print(s& s1) #{ 1, 3, 'd', 'm'} print(s.intersection(s1)) #{ 1, 3, 'd', 'm'}
& 是运算符号, intersection 是运算命令他们的结果是一样的
2、并集 合并两个集合
s = { 1,2,3,'m', 'a', 'd'} s1 ={ 1,'2',3,'m', 'd'} print(s|s1) #{ 1, 2, 3, 'm', '2', 'd', 'a'} print(s.union(s1)) #{ 1, 2, 3, 'm', '2', 'd', 'a'}
|竖是运算符号,union 是运算命令他们的结果是一样的
3、差集 保留前者与后者不同的元素 去除相同的元素
s = { 1,2,3,'m', 'a', 'd'} s1 ={ 1,'2',3,'m', 'd'} print(s - s1) #{ 'a', 2} print(s1.difference(s)) #{ '2'}
- 减号是运算符号,difference 是运算命令他们的结果是一样的
由于前后两次 两个 集合被比较的 关系对调了 所以 结果两次输出的结果也不同
4、交叉补集 只保留两者不同的部分
s = { 1,2,3,'m', 'a', 'd'} s1 ={ 1,'2',3,'m', 'd'} print(s ^ s1) #{ 2, '2', 'a'} print(s1.symmetric_difference(s)) #{ 2, '2', 'a'}
^ 是运算符号,symmetric_difference是运算命令他们的结果是一样的
5、isdisjoint 判断是否有交集返回布尔值
s = { 1,2,3,'m', 'a', 'd'} s1 ={ 1,'2',3,'m', 'd'} s2 = { 15,22} print(s1.isdisjoint(s2)) #True print(s1.isdisjoint(s)) #False
没有交集就返回 True 有交集就返回False
6、issubset判断后者是否包含前者 返回布尔值
s = { 1,2,3,'m', 'a', 'd'} s1 ={ 1,2,3,'m', 'd'} s2 = { 15,22,1} print(s1.issubset(s2)) #False print(s1.issubset(s)) #True
如果后者包含前者 则返回 True 如果后者不完全包含前者 则返回 False
7、issuperset判断前者是不是完全包含后者,返回布尔值
s = { 1,2,3,'m', 'a', 'd'} s1 ={ 1,2,3,'m', 'd'} s2 = { 15,22,1} s3 ={ 1,2,3,'m', 'a', 'd'} print(s.issuperset(s2)) #False print(s.issuperset(s1)) #True print(s.issuperset(s3)) #True
前者完全包含后者 则 返回 True 没有完全包含后者则返回False 前后两者相等也是True
8、update 更新
s = { 1,2,3,'m', 'a', 'd'} s3 ={ 1,2,3,'m', 'a', 'd'} s1 ={ 1,2,3,'m', 'd'} s2 = { 15,22,1} s.update(s3) print(s) #{ 1, 2, 3, 'a', 'm', 'd'} print(s3) #{ 1, 2, 3, 'd', 'm', 'a'} s1.update(s2) print(s1) #{ 1, 2, 3, 'm', 22, 'd', 15} print(s2) #{ 1, 22, 15}
把后者的元素 更新到前者内
PS:
访问方式
直接 访问:数字
顺序访问:字符串、列表、元祖
映射(keys):字典
字典的查询速度最快 但是字典占内存会比较高
存放元素个数:
容器类(存放多个值):列表、元祖、字典
原子类(只能存放一个值):数字、字符串
总结
以上就是关于python中的集合的介绍,上述常用集合命令有一定的借鉴价值,有需要的朋友可以参考学习,希望对大家学习Python 集合有帮助,想要了解更多可以继续浏览网络其他相关的文章。
文本转载自脚本之家
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: python中的集合怎样理解,常用集合命令有哪些?
本文地址: https://pptw.com/jishu/651355.html