【Python 基础篇】Python内建类型 之 set

集合是一个无序不重复元素集。

集合用 {} 标识,内部元素用 逗号 分隔。

可以使用大括号 {} 或者 set() 函数创建集合,注意: 要创建一个空集合,必须使用 set() 而不是 {},因为 {} 用于创建一个空字典

>>> s = {5, 'Python', 1+2j}
>>> type(s)
<class 'set'>

既然集合是无序的,那么索引就没有任何意义,也就是说,切片操作符 [] 不起作用。

>>> s = {"Java", "Python", "PHP"}
>>> s
{'PHP', 'Python', 'Java'}  # 无序
>>> 
>>> s[1]  # 生成错误,不支持索引
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'set' object does not support indexing

不重复是指集合中相同的元素会被自动过滤掉,只保留一份

>>> s = {"PHP", "Python", "Java", "Python", "PHP"}
>>> s
{'PHP', 'Python', 'Java'}  # 去重

除了去重之外,还常用于成员关系的测试。

>>> if ('Python' in s) :
...      print('Python 在集合中')
... else :
...      print('Python 不在集合中')
... 
Python 在集合中

集合之间也可执行运算,例如:并集、差集、交集

>>> a = set('abcdefg')
>>> b = set('abghijk')
>>> 
>>> a
{'b', 'f', 'e', 'd', 'a', 'c', 'g'}
>>> b
{'b', 'k', 'h', 'i', 'j', 'a', 'g'}
>>> 
>>> a - b  # 差集
{'f', 'c', 'd', 'e'}
>>> 
>>> a | b  # 并集
{'b', 'k', 'f', 'h', 'i', 'e', 'j', 'd', 'a', 'c', 'g'}
>>> 
>>> a & b  # 交集
{'b', 'a', 'g'}
>>> 
>>> a ^ b  # 对称差 - 不同时存在的元素
{'e', 'c', 'k', 'f', 'h', 'i', 'j', 'd'}

对称差公式:A Δ B = (A − B) ∪(B − A)。也可表示为两个集合的并集减去它们的交集:A Δ B = (A ∪B) − (A ∩B)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值