前言:
现时看官们对“python集合的集合”都比较关切,朋友们都需要知道一些“python集合的集合”的相关资讯。那么小编同时在网上网罗了一些关于“python集合的集合””的相关知识,希望同学们能喜欢,朋友们快快来学习一下吧!“一起学习,一起成长!”
集合就像舍弃了值,仅剩下键的字典一样。键与键之间也不允许重复。如果你仅仅想知道某一个元素是否存在而不关心其他的,使用集合是个非常好的选择。如果需要为键附加其他信息的话,建议使用字典。
1. 使用set()创建集合
>>> empty_set=set()
>>> empty_set
set()
>>> even_numbers={1,2,3,45,6}
>>> even_numbers
{1, 2, 3, 6, 45}
>>> odd_numbers={1,5,68,1,5,2}
>>> odd_numbers
{1, 2, 68, 5}
与字典的键一样,集合是无序的。
2. 使用set()将其他类型转换为集合
可以利用已有列表、字符串、元组或字典的内容来创建集合,其中重复的值会被丢弃。
>>> set('letter')
{'t', 'r', 'e', 'l'}
用列表创建集合:
>>> set(['Dasher','Dancer','Prancer','Mason-Dixon'])
{'Dancer', 'Dasher', 'Mason-Dixon', 'Prancer'}
>>>
用元组创建集合:
>>> set(('Ummagumma','Echoes','Atom Heart Mother'))
{'Echoes', 'Atom Heart Mother', 'Ummagumma'}
当字典作为参数传入set()函数时,只有键会被使用:
>>> set({'apple':'red','orange':'orange','cherry':'red'})
{'orange', 'cherry', 'apple'}
3. 使用in测试值是否存在
>>> drinks={'martini':{'vodka','vermouth'},'black russian':{'vodka','kahlua'},'white russian':{'cream','kahlua','vodka'},'manhattan':{'rye','vermouth','bitters'},'screwdriver':{'orange juice':'vodka'}}
尽管都由花括号({和})包裹,集合仅仅是一系列值组成的序列,而字典是一个或多个键值对组成的序列。
>>> for name,contents in drinks.items():
... if 'vodka' in contents:
... print(name)
...
martini
black russian
white russian
>>> for name,contents in drinks.items():
... if 'vodka' in contents and not ('vermouth' in contents or 'cream' in contents):
... print(name)
...
black russian
4. 合并及运算符
>>> drinks={'martini':{'vodka','vermouth'},'black russian':{'vodka','kahlua'},'white russian':{'cream','kahlua','vodka'},'manhattan':{'rye','vermouth','bitters'},'screwdriver':{'orange juice','vodka'}}
>>> for name,contents in drinks.items():
... if contents & {'vermouth','orange juice'}:
... print(name)
...
martini
manhattan
screwdriver
交集运算符&运算符的结果是一个集合,它包含所有同时出现在你比较的两个清单中的元素。
>>> for name,contents in drinks.items():
... if 'vodka' in contents and not contents & {'vermouth','cream'}:
... print(name)
...
black russian
screwdriver
>>> bruss=drinks['black russian']
>>> wruss=drinks['white russian']
>>> bruss
{'vodka', 'kahlua'}
>>> wruss
{'vodka', 'cream', 'kahlua'}
>>> bruss=drinks['black russian']
>>> wruss=drinks['white russian']
>>> bruss
{'vodka', 'kahlua'}
>>> wruss
{'vodka', 'cream', 'kahlua'}
【交集】可以通过使用特殊标点符号&或者集合函数intersection()获取集合的交集(两集合共有元素):
>>> a={1,2}
>>> b={2,3}
>>> a & b
{2}
>>> a.intersection(b)
{2}
>>> bruss & wruss
{'vodka', 'kahlua'}
【并集】使用|或者union()函数来获取集合的并集(至少出现在一个集合中的元素):
>>> a | b
{1, 2, 3}
>>> a.union(b)
{1, 2, 3}
>>> bruss | wruss
{'vodka', 'cream', 'kahlua'}
【差集】使用字符-或者difference()可以获得两个集合的差集(出现在第一个集合但不出现在第二个集合):
>>> a - b
{1}
>>> a.difference(b)
{1}
>>> bruss - wruss
set()
>>> wruss - bruss
{'cream'}
使用^或者symmetric_defference()可以获得两个异或集(仅在两个集合中出现一次):
>>> a ^ b
{1, 3}
>>> a.symmetric_difference(b)
{1, 3}
>>> bruss ^ wruss
{'cream'}
使用<=或者issubset()可以判断一个集合是否是另一个集合的子集(第一个集合的所有元素都出现在第二个集合中):
>>> a <= b
False
>>> a.issubset(b)
False
>>> bruss <= wruss
True
>>> a<=a
True
>>> a.issubset(a)
True
>>> a<b
False
>>> a<a
False
>>> bruss < wruss
True
>>>
超集与子集正好相反(第二个集合的所有元素都出现在第一个集合中),使用>=或者issuperset()可以进行判断:
>>> a>=b
False
>>> a.issuperset(a)
True
使用>可以找到一个集合的真超集(第一个集合包含第二个集合的所有元素且还包括其他元素):
>>> a>b
False
>>> wruss>bruss
True
>>> a>a
False
「亲,如果笔记对您有帮助,收藏的同时,记得给点个赞、加个关注哦!感谢!」
「诚邀关注公众号“issnail”,会有惊喜哦!感谢!」
「文中代码均亲测过,若有错误之处,欢迎批评指正,一起学习,一起成长!」
参考书目:python语言及其应用
标签: #python集合的集合 #python中集合的用法