两种类型集合之间的混淆运算会返回第一个操作元素的类型。
frozenset集合作为dic的key
- In [138]: f = frozenset(['name'])
- In [139]: dic = {f:'Jmilk'}
- In [140]: dic
- Out[140]: {frozenset({'name'}): 'Jmilk'}
set集合弗成以作为Dictionary的Key:
- In [144]: s1 = set(['JMilk'])
- In [145]: dic = {s1:'name'}
- ---------------------------------------------------------------------------
- TypeError Traceback (most recent call last)
- <ipython-input-145-a2aec7bb3b32> in <module>()
- ----> 1 dic = {s1:'name'}
- TypeError: unhashable type: 'set' #不具有hash
set与frozenset类型的集合都支撑集合之间的比较、交、并、差操作,类似数据的集合关系比较。然则须要留意的是:因为frozenset是弗成变集合,所以下列函数中带有’_update’关键字的函数,frozenset都弗成声调用。
NOTE: 带有 _update 的函数,应用原位操作的办法实现,拥有更低的资本消费。然则如许的话,函数是没有返回值的,即不克不及将结不雅赋值给一个新的变量。
intersection()、intersection_update()求交集
intersection(…)
Return the intersection of two or more sets as a new set.
返回一个由若干个集合经由交集运算后获得的新交集,可以传入多个迭代器类型的参数。即可以传递Tuple、List、、String、Dictionary、Set等类型参数。
集合之间求交集
- In [59]: s1
- Out[59]: {1, 2, 3, 'a', 'b'}
- In [60]: s2
- Out[60]: {3, 4, 5, 'b', 'c', 'd'}
- In [61]: s3 = set([1,3,8,9,10,'d''e','f'])
- In [62]: s4 = s1.intersection(s2,s3)
推荐阅读
作为办事的灾害恢复,是经由过程云来降低营业办事成本的好办法。在内部,灾害恢赋臣芏着在另一个地位创建临盆>>>详细阅读
本文标题:Python集合set和frozenset的内建方法详解
地址:http://www.17bianji.com/lsqh/35321.html
1/2 1