Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How to use Collection set in Python

2025-01-17 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >

Share

Shulou(Shulou.com)06/02 Report--

小编给大家分享一下Python中如何使用集合set,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

集合 (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类型的 3print(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)) #Trueprint(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)) #Falseprint(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)) #Falseprint(s.issuperset(s1)) #Trueprint(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中如何使用集合set"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Development

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report