Python知识——集合类型

本文详细介绍了Python集合的基本概念和操作,包括定义、关系运算(交集、并集、差集、对称差集)以及集合的去重功能。此外,还探讨了集合与其他内置方法如discard、difference_update和isdisjoint的使用。通过实例展示了集合在实际问题中的应用。
摘要由CSDN通过智能技术生成

集合类型

1、定义
在{ }内用逗号分隔开多个字符,多个元素满足以下三个条件:

  1. 集合内元素必须为不可变类型
s={1,2,3,4,[1,2,3,4]} #是错误的
  1. 集合内元素无序

  2. 集合内元素没有重复

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

在这里插入图片描述

s={} #默认是空组字典
#定义空集合
s=set{}

2、关系运算

取交集 &或者 intersection

f={"张三","李四","王五","老六","老七"}
f2={"王尼玛","张三","赵铁柱","陈胖胖","王五"}
res=f & f2
print(res)
print(f.intersection(f2))

在这里插入图片描述
取并集 | 或者union

f = {"张三", "李四", "王五", "老六", "老七"}
f2 = {"王尼玛", "张三", "赵铁柱", "陈胖胖", "王五"}
print(f | f2)
print(f.union(f2))

在这里插入图片描述
取差集 - 或者difference
取出某个集合特有的元素,此成员计算有前后顺序之分

f = {"张三", "李四", "王五", "老六", "老七"}
f2 = {"王尼玛", "张三", "赵铁柱", "陈胖胖", "王五"}
print(f-f2) 
print(f.difference(f2))

在这里插入图片描述

对称差集 ^ 或者symmetric_difference
删除集合中共同的元素(多个集合中独有的元素的并集)

f = {"张三", "李四", "王五", "老六", "老七"}
f2 = {"王尼玛", "张三", "赵铁柱", "陈胖胖", "王五"}
print(f ^ f2)
print(f.symmetric_difference(f2))

在这里插入图片描述
父子集:只有当一个集合完全包含或者等于另一个集合,才叫父子集 issuperset

s={1,2,3,4,5,6,7,8,9}
s1={1,2,3,4}
print(s>s1)
print(f.issuperset(f2))

返回的值为True

3、去重

  1. 只能针对不可变类型去重
s=set([1,2,5,6,3,2,[1,2,3,6,5]])#会报错

在这里插入图片描述

  1. 无法保证原来的顺序
s=set(["hehe","haha",12,15,"heihei",12,15,"hehe"])
print(s)

在这里插入图片描述

4、其他内置方法

discard 删除集合中的元素,如果这个元素不存在于集合,什么也不做

s={1,2,3,4,5,6,7,8,9}
s.discard(3)
print(s)

在这里插入图片描述
相比于remove,当remove删除的元素不存在于集合时,会直接报错。所以discard的容错更高

difference_update

s={1,2,3,4,5,6,7,8,9}
s1={1,2,3,4}
s.difference(s1)
print(s)

对s集合没有如何的影响,如果:

s=s.difference(s1)#就会对s造成影响,而difference_update 就等同于它
print(s)

在这里插入图片描述

isdisjoint 如果两个集合没有交集就返回True,有则返回False

s={1,2,3,4,5,6,7,8,9}
s1={1,2,3,4}
print(s.isdisjoint(s1))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值