• python学习笔记——集合


    ……

    目录:

    一;概念

    二;创建集合

    三;与集合相关的函数

    四;遍历集合

    五;判断元素是否在集合中

    六;子集、超集和相等判断

    七;集合运算

    八;列表去重,保持原有顺序输出

    ……

    一;概念

    集合(set)是一类容器,元素没有先后顺序,并且元素的值不重复,集合用的是{}将元素括起来。

    ……

    ……

    二;创建集合

    1;创建一个空集合,a=set()

    2;直接进行赋值初始化,a={'a',1,2,1,'a','w1'}

    3;也可以将其它类型容器转化为集合。

    比如:

    a=[1,2,3,4,2]

    b=set(a)

    print(b)

    会输出:

    {1, 2, 3, 4}

    通过set()函数,就可以将列表转化为集合了,转化成的集合有一个很大的好处就是可以删去多余的元素,比如a列表中本来有两个2,但是变成集合后,就只有一个2了。如果想要再进行列表的操作怎么办呢?很简单,再转变成列表就行了,比如:

    a=[1,2,3,4,2]

    b=set(a)

    print(b)

    c=list(b)

    print(c)

    会输出:

    {1, 2, 3, 4}

    [1, 2, 3, 4]

    将列表转变成集合,然后又从集合转变成字典,就成功的消去了多余的元素了。

    4;在创建集合时,python除了会消去重复的元素外,还会改变元素的顺序(集合是无序的)。

    ……

    ……

    三;与集合相关的函数

    3b0edf8ef4444df49c3e6e58af7d5d2a.png

     

     

    事实上,还是之前的那几个函数……不过缺少了对元素下标和顺序等一些操作的函数,因为集合时是无序的,没有下标。

    ……

    ……

    四;遍历集合

    虽说集合是无序的,但却可以用循环来遍历集合,比如:

    a={'a',1,2,1,'a','w1'}

    for i in a:

    print(i)

    会输出:

    1

    2

    w1

    a

    为什么会输出这样一个顺序呢?因为集合是无序的,所以会随机输出元素,我再运行一次程序,输出的值可能就不是1-2-w1-a了,可能变成1-2-a-w1了。(所以将集合转化为列表进行输出,更加稳定一些,起码顺序不会这样颠三倒四)

    ……

    ……

    五;判断元素是否在集合中

    用in和not in判断就可以了。

    比如:

    a={'a',1,2,1,'a','w1'}

    if(2 in a):

        print('yes')

    会输出:

    yes

    ……

    ……

    六;子集、超集和相等判断

    可以直接进行=、>、<、>=、<=进行判断。

    比如:

    a={1,2,3}

    b={3,2,1}

    if(a==b):

        print('yes')

    会输出:

    yes

    集合是无序的,所以顺序无论怎么变,只要元素能一一相等,那这两个集合就相等。

    而如果a>b,则说明b是a的真子集,a是b的真超集。

    a>=b,说明b是a的子集,a是b的超集。

    至于<和<=,也都类似。

    ……

    ……

    七;集合运算

    4d4aa5b73c3c449b820c4c995064f747.png

     

     

    八;列表去重,保持原有顺序输出

    将列表转换成集合删去重复的数,然后再恢复成列表,顺序就会发生改变,而怎么样保持原有顺序输出呢?

    比如:

    a=[1,'w','a','z',23,1,21,'a',11,2,2]

    b=list(set(a))

    print(b)

    b.sort(key=a.index)

    print(b)

    会输出:

    [1, 2, 11, 'w', 21, 23, 'a', 'z']

    [1, 'w', 'a', 'z', 23, 21, 11, 2]

    第一行是无序输出,而第二行则是根据原有的列表顺序输出。

     

  • 相关阅读:
    2、宽带Doherty放大器ADS仿真(带版图)
    一款跨时代的高性能 Java 框架,启动速度快到飞起
    云原生 PostgreSQL 集群 - PGO:来自 Crunchy Data 的 Postgres Operator
    chatGPT如何在Java中使用
    手撕IP核系列——Xilinx FIFO IP核-异步FIFO
    【论文阅读 05】图像异常检测研究现状综述
    java计算机毕业设计html5大众汽车网站MyBatis+系统+LW文档+源码+调试部署
    docker-compose安装和使用(自启、redis、mysql、rabbitmq、activemq、es、nginx、java应用)
    Python+Appium自动化测试-编写自动化脚本
    通过输入命令,在命令行中运行powershell
  • 原文地址:https://blog.csdn.net/oyqho/article/details/127739649