作家
登录

Python集合set和frozenset的内建方法详解

作者: 来源: 2017-05-19 14:02:23 阅读 我要评论

  

两种类型集合之间的混淆运算会返回第一个操作元素的类型。

frozenset集合作为dic的key

  1. In [138]: f = frozenset(['name']) 
  2.  
  3. In [139]: dic = {f:'Jmilk'
  4.  
  5. In [140]: dic 
  6.  
  7. Out[140]: {frozenset({'name'}): 'Jmilk' 

set集合弗成以作为Dictionary的Key:

  1. In [144]: s1 = set(['JMilk']) 
  2.  
  3. In [145]: dic = {s1:'name'
  4.  
  5. --------------------------------------------------------------------------- 
  6.  
  7. TypeError Traceback (most recent call last
  8.  
  9. <ipython-input-145-a2aec7bb3b32> in <module>() 
  10.  
  11. ----> 1 dic = {s1:'name'} 
  12.  
  13. 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等类型参数。

集合之间求交集

  1. In [59]: s1 
  2.  
  3. Out[59]: {1, 2, 3, 'a''b'
  4.  
  5.   
  6.  
  7. In [60]: s2 
  8.  
  9. Out[60]: {3, 4, 5, 'b''c''d'
  10.  
  11.   
  12.  
  13. In [61]: s3 = set([1,3,8,9,10,'d''e','f']) 
  14.  
  15.   
  16.  
  17. In [62]: s4 = s1.intersection(s2,s3) 
  18.  

  19.   推荐阅读

      使用DRaaS提供商可能会带来意想不到的成本

    作为办事的灾害恢复,是经由过程云来降低营业办事成本的好办法。在内部,灾害恢赋臣芏着在另一个地位创建临盆>>>详细阅读


    本文标题:Python集合set和frozenset的内建方法详解

    地址:http://www.17bianji.com/lsqh/35321.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)