python 学习之路(集合)

python 学习之路(集合)

集合本身无序,并且数据不重复,主要作用:
1.去重 列表转换成集合就能去重
2.做两组数据的 交集、差集、并集 (关系测试)

声明集合

# 先声明一个列表
list1 = [1,2,3,4,4,5,3,7,2]
# 将列表变成集合 
list1 = set(list1)
# 打印结果:{1, 2, 3, 4, 5, 7} 可以看出已经去重;

取交集

list1 = [1,2,3,4,4,5,3,7,2]
list1 = set(list1)
list2 = set([2,33,44,5,66,7,77])
a = list1.intersection(list2) # 交集方法
# a的结果:{2, 5, 7}

list1 & list2 # 用符号表示交集

取并集

list1 = set([1,2,3,4,4,5,3,7,2])
list2 = set([2,33,44,5,66,7,77])
a = list1.union(list2) # 并集方法
# a的结果:{1, 2, 3, 4, 5, 33, 7, 66, 44, 77}

list1 | list2 # 用符号表示并集

取差集

list1 = set([1,2,3,4,4,5,3,7,2])
list2 = set([2,33,44,5,66,7,77])
a = list1.difference(list2) # 差集方法
# a的结果:{1, 3, 4}
list2.difference(list1) # 会得到另外一种结果

list1 - list2 # 用符号表示差集

子集 父集

list1 = set([1,2,3,4,4,5,3,7,2])
list2 = set([2,4 ,4])
list1.issubset(list2) # 判断list1 是不是 list2的子集 结果:False  
# list1 <= list2

list1.issuperset(list2) # 判断list1 是不是 list2的父集 结果:True
# list1 >= list2

对称差集

list1 = set([1,2,3,4,4,5,3,7,2])
list2 = set([2,33,44,5,66,7,77])
a = list1.symmetric_difference(list2) # 对称差集方法
# 说明:就是并集的反集 a的结果:{1, 66, 3, 4, 77, 33, 44}

list1 ^ list2 # 用符号表示对称差集

判断是否没有交集

list1 = set([1,2,3,4])
list2 = set([5,6,7,8])
list1.isdisjoint(list2) # 没有交集返回True

基本操作

添加

list1 = set([1,2,3,4])
list1.add(5) # 添加一项
print(list1) # 结果:{1, 2, 3, 4, 5}
list1.update([5,6,7,8]) # 添加多项

删除

list1 = set([1,2,3,4])
list1.remove(1)
print(list1) # 结果:{2, 3, 4}
# a.pop() pop 方法是删除并且将此值返回
# a.discard('a') # 如果没有被删除的值将不会报错 remove 会报错

长度

len(list1) # 长度

判断 a 是否是 b 集合的成员

a in b

判断 a 是否不是 b 集合的成员

a not in b

浅复制

list1.copy() # 对集合list1 的一个浅复制
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tr-add_oil

打赏,我只要1块。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值