龙空技术网

Python中的集合是如何使用的?

python知识分享 71

前言:

现时看官们对“python集合的集合”都比较关切,朋友们都需要知道一些“python集合的集合”的相关资讯。那么小编同时在网上网罗了一些关于“python集合的集合””的相关知识,希望同学们能喜欢,朋友们快快来学习一下吧!

欢迎关注「issnail」感谢!

“一起学习,一起成长!”

集合就像舍弃了值,仅剩下键的字典一样。键与键之间也不允许重复。如果你仅仅想知道某一个元素是否存在而不关心其他的,使用集合是个非常好的选择。如果需要为键附加其他信息的话,建议使用字典。

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中集合的用法