• 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]

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

     

  • 相关阅读:
    动态规划:区间动态规划
    python小项目之利用pygame实现代码雨动画效果(附源码 可供学习)
    C语言的查找
    【网页制作课作业】用HTML+CSS制作一个简单的学校网页(9页)
    TCP/IP模型原理(理论)
    设计模式(二)创建模式
    Java面试题10-如何理解volatile关键字
    【Nginx】nginx | 微信小程序验证域名配置
    mmdetection中的一些Python基础知识(super()/***args/**kwargs)
    ⑭霍兰德RS*型如何选专业?高考志愿填报选专业
  • 原文地址:https://blog.csdn.net/oyqho/article/details/127739649