python集合操作

集合是一个无序的、不重复的数据组合,主要作用如下:

1.去重:把一个列表变成集合,就自动去重了
list1 = [1, 3, 4, 5, 7, 6, 9, 7, 4]
list1 = set(list)   # 利用集合set去重
print('去重:', list1)

输出:
去重: {1, 3, 4, 5, 6, 7, 9}
2.关系测试:测试两组数据之间的交集、并集、差集等关系
list2 = set([22, 6, 66, 88, 4])
list3 = set([1, 3, 5])

print('交集:', list1.intersection(list2))
print('并集:', list1.union(list2))
print('1和2的差集:', list1.difference(list2))
print('2和1的差集:', list2.difference(list1))
print('2是否为1的子集:', list1.issubset(list2))
print('2是否为1的父集:', list1.issuperset(list2))
print('对称差集:', list1.symmetric_difference(list2)) # 去掉1和2中相同的元素
print('判断两个集合有无交集,无则返回true:', list2.isdisjoint(list3))

print('------运算符表达方式-------')

print('交集:', list1  & list2)
print('并集:', list1 | list2)
print('1和2的差集:', list1 - list2)
print('2和1的差集:', list2 - list1)
print('对称差集:', list1 ^ list2)

输出:
交集: {4, 6}
并集: {1, 66, 3, 4, 5, 6, 7, 9, 22, 88}
12的差集: {1, 3, 5, 7, 9}
21的差集: {88, 66, 22}
2是否为1的子集: False
2是否为1的父集: False
对称差集: {1, 66, 3, 5, 7, 9, 22, 88}
判断两个集合有无交集,无则返回true: True

------运算符表达方式-------
交集: {4, 6}
并集: {1, 66, 3, 4, 5, 6, 7, 9, 22, 88}
12的差集: {1, 3, 5, 7, 9}
21的差集: {88, 66, 22}
对称差集: {1, 66, 3, 5, 7, 9, 22, 88}
3.集合的增删改查
list1.add(999)
print('增加一项:', list1)

list1.update([777, 888, 111])
print('增加多项:', list1)

list1.remove(999)
print('删除一项:', list1)

print(list1.pop())  # 随机删除一项

print(888 in list1) # 判断某元素是否在集合中

list1.discard('ddd') # discard删除不存在集合中的元素不会报错,remove会报错
print(list1)

输出:
增加一项: {1, 3, 4, 5, 6, 7, 999, 9}
增加多项: {1, 3, 4, 5, 6, 7, 999, 9, 777, 111, 888}
删除一项: {1, 3, 4, 5, 6, 7, 9, 777, 111, 888}
1
True
{3, 4, 5, 6, 7, 9, 777, 111, 888}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值