Python自动化开发从浅入深-语言基础(set)

set的概念有点类似于hash表,它是一个无序但不重复的元素集合(而列表、元祖和字典数据都是可以重复的),而且访问速度快。

set可以方便的进行求交、差、对称差、并集等计算和比对,这在其他序列操作中则比较复杂 

如图,通过set命令就建立了一个set集合:

     

    通过 a = set()创建一个空集合,通过add进行添加元素。

定义了set,我们就可以进行以下操作:

  • 添加一个元素,如图,添加一个元素7

   

  添加了三次‘aaa’,只看见一个‘aaa’,set将重复的去除了。

  

  • 一次添加多个元素,如图,添加了7,9,11

   

  • 删除一个元素,如图,将a中的5去掉

   

  • 清空set,如图 

   

  • 求set的长度,如图,求出长度为6

   

  •  查看某个值是不是另一个set的元素,或不是另一个set的成员。

  

  • 查看一个set集的所有元素是否在另一个set集中,如图,

   

  • 求交,如图,2个set的交集为{1,3}。

  

  intersection在返回结果中存放求交的数据,intersection_update不返回结果,它把求交的结果数据放到自身的set中(update)。

      

  • set可以去重,如图,将重复的1,2,3,4数字自动去掉。  

   

  • 求差,如图,b-a = {9,10,7}

   

    difference在返回结果中存放求差的数据,difference_update不返回结果,它把求交的结果数据放到自身的set中(update),如图,把从set a中移除set b中的元素。 

 

    对称差:b^a , symmetric_difference 去掉了2者都有的元素(与求交相反,获取2者都有的元素)。

图示为对称差

   

图示为求交

   

  •  求合并union, 如图,b|a,去掉重复的元素,合并为一个set

   

  • 求一个set是否在另外一个set中,如图,c,d集合在b中。

   

  • 将一个字符串进行set转换,如图

    

  • set的copy为浅拷贝,如图

    

  • pop用来删除set中的一个不确定元素,并且返回它,如图

   

  • isdisjoint 如果没有交集,则返回True

  

  •  

 

原文地址:https://www.cnblogs.com/whiggzhaohong/p/5178533.html