美文网首页python
python(10):集合

python(10):集合

作者: Z_bioinfo | 来源:发表于2022-03-31 10:39 被阅读0次

    python中集合的概念与数学中集合的概念一致,一般用一对花括号或set进行定义,集合的元素可以是整数、浮点数、字符串或元组,但不能是列表、集合或字典。集合的定义有以下几种形式:

    a={2,3.14,'python',(4,6,'C')}#定义一个集合,共有4个元素,元素类型分别是整数、浮点数、字符串和元组
    a#查看变量a的值时,我们发现输出的顺序与定义的顺序并不致,这是集合的特征之一,元素是无序的,因此它不能做切片操作。
    {(4, 6, 'C'), 2, 3.14, 'python'}
    ==============================================
    b=set('人生苦短,我学python')#用set()函数定义了一个集合,当参数是字符串时,将每个字符作为集合的元素
    b
    {'h', 'n', 'o', 'p', 't', 'y', '人', '学', '我', '生', '短', '苦', ','}
    ===============================================
    #当set()函数的参数是列表时,将方括号去掉,列表元素直接作为集合元素,我们发现列表中有2个6,但输出时只有1个6,因为集合的元素具有不可重复性,我们可以利用这个特性实现元素去重操作
    c=set([345,6,35,4,6,353])
    c
    {4, 6, 35, 345, 353}
    ==============================================
    #将元组作为set()函数的参数,输出时去掉圆括号
    d=set(('天生我材必有用','千金散尽还复来'))
    d
    {'千金散尽还复来', '天生我材必有用'}
    =============================================
    

    在数学中集合有并集、交集、差集、补集等操作,这些操作可以非常便捷地用python实现。

    python=set(['张三','王八','赵六']) #表示选修了python的名单
    c=set(['王八','陈十一'])     #表示选修了c的名单
    python&c  #交集,表示同时选修python与c
    {'王八'}
    ================================================
    In [4]: python|c  #并集,表示选了python或C
    Out[4]: {'张三', '王八', '赵六', '陈十一'}
    ==========================================
    In [5]: python-c  #差集,常用于删除元素,表示选了python但没选c
    Out[5]: {'张三', '赵六'}
    ===================================================
    In [6]: python^c  #对称差,输出只选一门课的学生,等价于并集-交集
    Out[6]: {'张三', '赵六', '陈十一'}
    =======================================
    In [7]: (python|c)-(python&c)  #同python^c
    Out[7]: {'张三', '赵六', '陈十一'}
    ========================================
    In [8]: python<=c  #集合python若是集合c的真子集则返回True,否则返回False
    Out[8]: False
    In [9]: python>=c  #集合c若是集合python的真子集则返回True,否则返回False
    Out[9]: False
    

    集合还有一些常用的操作函数或方法:

    In [24]: a={1,2,3}
    In [25]: a.add(4)  #添加元素
    In [26]: a
    Out[26]: {1, 2, 3, 4}
    In [27]: a.pop()  #随机返回一个元素,并删除
    Out[27]: 1
    In [28]: a
    Out[28]: {2, 3, 4}
    In [29]: a.discard(3) #删除元素,若无该元素不报错
    In [30]: a
    Out[30]: {2, 4}
    In [31]: a.remove(5) #删除元素,若无该元素报错
    Traceback (most recent call last):
      File "<ipython-input-40-91f29775c65b>", line 1, in <module>
        a.remove(5)
    KeyError: 5
    In [32]: a
    Out[32]: {2, 4}
    In [33]: len(a) #元素个数,即集合长度
    Out[33]: 2
    In [34]: 3 in a
    Out[34]: False
    In [35]: 3 not in a
    Out[35]: True
    In [36]: max(a)
    Out[36]: 4
    In [37]: min(a)
    Out[37]: 2
    In [38]: sum(a)
    Out[38]: 6
    In [39]: sorted(a) #升序排列
    Out[39]: [2, 4]
    In [40]: a.clear() #清空集合
    In [41]: a
    Out[41]: set() #空集
    

    相关文章

      网友评论

        本文标题:python(10):集合

        本文链接:https://www.haomeiwen.com/subject/cywgjrtx.html