一 : 集合简介
集合是一个无序不重复元素的序列。
表现方式 : {}
与 set
其中创建一个空集合必须用 set()
而不是 { }
,因为 { }
是用来创建一个空字典。
集合的概念与数学上的集合一样,其特性在此不再赘述,主要讲一下它在python中的使用.
初始化集合的两种方式 :
first
f = {1, 2, 3, 4, 5, 3}
second
s = set('hello')
二 : 集合常用方法
add
集合添加元素
s.add('紫琪') s.add('紫琪')
{'紫琪', 'e', 'o', 'h', 'l'}
clear
清空集合
s.clear()
set()
copy()
集合拷贝
s1 = s.copy()
pop
随机删除集合中的元素,返回值为删除的元素
result = s.pop()
remove
指定删除某个元素,找不到元素报错
s.remove('e')
discard
指定删除某个元素,找不到元素不会报错
s.discard('不存在')
isdisjoint
如果有共有的部分返回false,没有共有的部分返回True
s1 = {1, 2} s2 = {3, 5}print(s1.isdisjoint(s2))
True
issubset
判断s1是否为s2的子集
print(s1.issubset(s2))
False
issuperset
判断s1是否为s2的父集
print(s1.issuperset(s2))
False
update
s1 更新 (并集再赋值给s1),更新多个值,参数可以为列表或者元素等可迭代对象
s1.update(s2)print(s1)
{1, 2, 3, 5}
三 : 集合运算
初始化两个集合
one = ['tz', '紫琪', '雪芙'] tuow = ['雪芙', '紫琪', '乔恩'] one_s = set(python) two_s = set(linux)
求交集
print(one_s.intersection(two_s))
交集字符表现形式
one_s & two_s
{'雪芙', '紫琪'}
求并集
print(one_s.union(two_s))
并集字符表现形式
one_s | two_s
{'乔恩', '雪芙', '紫琪', 'tz'}
求差集
one_s.difference(two_s)
为 左边集合减去 右边集合,相反的, 参数位置对调,变为右边集合减去左边集合.在此只做左减右示例
print(one_s.difference(two_s))
差集字符表现形式
print(one_s - two_s)
{'tz'}
差集后更新
两集合做差集后并赋值给左边集合
one_s.difference_update(two_s)print(one_s)
{'tz'}
交叉补集
两集合排除交集,剩下的一起保留
print(one_s.symmetric_difference(two_s))
交叉补集字符表现形式
one_s ^ two_s
{'tz', '乔恩'}
交叉补集后更新
两集合做交叉补集后并赋值给左边集合
one_s.symmetric_difference_update(two_s)print(one_s)
{'tz', '乔恩'}
四 : 不可变集合
无法使用可变集合的方法
s = frozenset('hello')
frozenset
是一个具有集合特征的新类,但是一旦分配,它里面的元素就不能更改。这一点和元组非常类似:元组是不可变的列表,frozenset 是不可变的集合。
集合是 unhashable
的,因此不能用作字典的 key;而 frozensets 是 hashable
的,可以用作字典的 key。
作者:TianTianBaby223
链接:https://www.jianshu.com/p/806307b6cfdb
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦