Python学习:集合

a 夏天 提交于 2020-03-29 07:22:18


集合学习笔记
1.添加 add()  注意:add仅可更新一个值

s={1,2,3,4}
s.add(6)
print(s)

2.清空集合clear()

s={1,2,3,4}
s.clear()
print(s)

3.拷贝 copy()

s={1,2,3,4}
s1=s.copy()

4.随机删除 pop()

s={1,2,3,4}
s.pop()
print(s)

5.指定删除 remove() 注意:删除集合中不存在的元素会报keyerror的错

s={1,2,3,4}
s.remove('3')
print(s)

6.指定删除 discard()   注意:删除集合中不存在的元素不会报错

s={1,2,3,4}
s.discard('sbbbb')
print(s)

交并差

list1=[1,2,3,4,5]
list2=[2,3,5,5,6,7,8]

set1=set(list1)
set2=set(list2)

print(set1.intersection(set2))
print(set1&set2)

注意:set1&set2 和set1.intersection(set2)效果一致,求交集

print(set1.union(set2))
print(set1|set2)

注意:set1.uniont(set2)效果与set1|set2相同

list1=[1,2,3,4,5]
list2=[2,3,5,5,6,7,8]
set1=set(list1)
set2=set(list2)
print(set1-set2)
print(set2-set1)
print(set1.difference(set2))
print(set2.difference(set1))

集合的其他内置方法
交叉补集

print(set1.symmetric_difference(set2))
print(set1^set2)

差集运算之difference_update()

set1.difference_update(set2)
上述语句效果等同于set1=set1-set2
difference_update的效果就是差集运算,并将值重新赋予左边的变量

isdisjoint():两个集合没有交集,返回True,否则返回False

s1={1,2}
s2={3,4}
print(s1.isdisjoint(s2))

issubset():s1<=s2 判断包含关系,s1是s2的子集时,返回True,否则返回False
issuperset():s1>=s2 判断包含关系,s1是s2的父集时,返回True,否则返回False

s1={1,2}
s2={1,2,3}
print(s1.issubset(s2))
print(s2.issuperset(s1))

update():效果相当于将s2赋值给s1 可以更新多个值

s1.update(s2)
print(s2)

补充:
frozenset:定义不可变集合

s=frozenset('hello')
print(s)

举例:

可以看到,add方法已不可用,

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!