python集合

Posted blueteer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python集合相关的知识,希望对你有一定的参考价值。

集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合

1、创建集合:注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典

s = set() #创建一个空集合
s1 ={apple,orange,banana,pear}  #创建非空集合
print(s1)

2、集合的去重

s1 = {1,2,3,1,32,32,1,2,1,3,4,apple,1,1,apple}
print(s1)  #集合输出的时候默认去重

#输出:{32, 1, 2, ‘2‘, 3, 4, ‘1‘, ‘3‘, ‘apple‘}

3、集合取交集,集合a和b中都包含了的元素

s1 = {1,2,3,1,32,32,1,2,1,3,4,apple,1,1,apple}
s2 = {apple,1,pear,orange,5}
res =s1.intersection(s2)   #两个集合取交集,没有交集时返回空
res1 = s1 & s2 #同上,也是取交集
print(res1)  

4、集合取并集

s1 = {1,2,3,1,32,32,1,2,1,3,4,apple,1,1,apple}
s2 = {apple,1,pear,orange,5}

res2 = s1.union(s2) #两个集合取并集,去掉重复的,合在一起就可
res3 = s1 | s2  #同上,也是取并集
print(res2)

5、集合取差集

s1 = {1,2,3,1,32,32,1,2,1,3,4,apple,1,1,apple}
s2 = {apple,1,pear,orange,5}

res4 = s1 - s2  #两个集合取差集,打印出s1有,s2没有的元素
res5 = s2 - s1  #两个集合取差集,打印出s2有,s1没有的元素(那个集合在前面打印那个集合的)
print(res5)

6、集合的对称差集,不同时包含于a和b的元素

s1 = {1,2,3,1,32,32,1,2,1,3,4,apple,1,1,apple}
s2 = {apple,1,pear,orange,5}

res6 = s1.symmetric_difference(s2)  #集合取对称差集,就是将只在一个集合中的打印出来,包含s1的和s2的
res7 = s1 ^s2 #同上,取对称差集,
print(res7)

7、集合操作之增加

s3 ={vidna,pp,liul,sss,ddd}
res8 = s3.add(banaba)#集合增加元素,如果元素已存在,则不进行任何操作
res9 = s3.update([222,3333])#可以添加元素,且参数可以是列表,元组,字典等
res10 = s3.update({a:1,b:2})
print(res10)#返回的是None
print(s3)#返回集合的所有元素,包括加进去的

8、集合操作之删除

s3 ={vidna,pp,liul,sss,ddd}

res11 = s3.remove(pp) #删除不存在的元素时,会报错
res12 = s3.discard(bbbb)#也可以删除元素,删除不存在的时候,不会报错
res13 = s3.pop() #随机删除一个元素
res14 = s3.clear()#清空集合
print(s3)#返回集合的所有元素,包括加进去的

9、集合的长度

print(len(s3))

10、集合的循环

for i in s3:
    print(i)

11、判断元素在集合中

s3 ={vidna,pp,liul,sss,ddd}
if pp in s3:
    print(True)

 

以上是关于python集合的主要内容,如果未能解决你的问题,请参考以下文章

金蝶handler中 collection 代码片段理解

Alfred常见使用

比较 C# 中的字符串片段并从集合中删除项目

带有红宝石集合/可枚举的酷技巧和富有表现力的片段[关闭]

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段