• 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

      

    •  

     

  • 相关阅读:
    LeetCode#34 Search for a Range
    Multiplication algorithm
    LeetCode#31 Next Permutation
    Spring boot之Hello World
    spring boot 简介
    分布式-网络通信-线程
    分布式-网络通信-协议
    分布式-架构图
    9.leetcode70-climbing stairs
    8.Leetcode69 Sqrt(x) 笔记
  • 原文地址:https://www.cnblogs.com/whiggzhaohong/p/5178533.html
Copyright © 2020-2023  润新知