• python集合


    set_python

    • 集合(set)是一个可变的数据类型,它用于存储一组唯一的元素。集合中的元素是无序的,并且不能重复。可以使用大括号{}或者set()函数来创建一个集合。

    • 集合有很多常用的方法,例如add()用于添加元素,remove()用于删除元素,pop()用于随机删除一个元素等等。此外,还有一些常用的运算符和方法,比如并集、交集、差集、对称差集等。

    1.集合的创建

    s = {2, 3, 4, 5, 6, 6, 7, 7}
    print(s)  # {2, 3, 4, 5, 6, 7}
    
    s1 = set(range(6))
    print(s)  # {0, 1, 2, 3, 4, 5}
    
    s2 = set([2, 3, 4, 5, 6, 6, 7, 7])
    print(s2)  # {2, 3, 4, 5, 6, 7}
    
    s3 = set((1, 2, 4, 5, 65))
    print(s3)  # {65, 1, 2, 4, 5} 无序
    
    s4 = set('python')
    print(s4)  # {'h', 'n', 'o', 't', 'y', 'p'}
    
    s5 = set({12, 4, 34, 55, 66, 4, 66})
    print(s5)  # {34, 66, 4, 55, 12}
    
    # 定义一个空集合
    s6 = {}
    print(type(s6))  #  错误方法
    s7 = set()
    print(type(s7))  # 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    2.集合的相关操作

    • 判断操作(in / not in)
    s = {10, 20, 30, 40, 60, 20}
    print(10 in s)  # True
    print(10 not in s)  # False
    print(100 in s)  # False
    
    • 1
    • 2
    • 3
    • 4
    • 新增操作
    方法含义
    add()一次至少添加一个元素
    update()至少添加一个元素
    s = {10, 20, 20}
    
    s.add(80)
    print(s)  # {80, 10, 20}
    
    s.update({100, 110})
    print(s)  # {80, 20, 100, 10, 110}
    
    s.update([200, 210])
    print(s)  # {80, 210, 20, 100, 200, 10, 110}
    
    s.update((300, 310))
    print(s)  # {200, 10, 80, 210, 20, 100, 300, 110, 310}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 删除操作
    方法含义
    remove()一次删除一个指定的元素。若指定元素不存在抛出KeyError
    discard()一次删除一个指定元素,若指定元素不存在不抛出异常
    pop()一次只删除一个任意元素
    clear()清空集合
    s = {200, 10, 80, 210, 20, 100, 300, 110, 310}
    
    s.remove(100)
    print(s)  # {200, 10, 300, 110, 80, 210, 20, 310}
    
    '''
    s.remove(500)
    print(s)  # 报错 
    '''
    
    s.discard(200)
    print(s)  # {10, 300, 110, 80, 210, 20, 310}
    
    s.discard(500)
    print(s)  # 不报错:{10, 300, 110, 80, 210, 20, 310}
    
    s.pop()
    # s.pop(300)  # pop() takes no arguments (1 given)
    print(s) # {300, 110, 80, 210, 20, 310}
    
    s.clear()
    print(s)  # set()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    3.集合间的关系

    集合关系使用函数
    A与B是否相等A == B
    A是否是B的子集A.issubset(B)
    A是否是B的超集A.issuperset(B)
    A与B是否不存在交集A.isdisjoint(B)
    # 两个集合是否相等(元素同,就相等)
    s = {10, 20, 30, 40}
    s2 = {30, 40, 20, 10}
    print(s == s2)  # True
    print(s != s2)  # False
    
    # 一个集合是否是另一个集合的子集
    s1 = {10, 20, 30, 40, 50, 60}
    s2 = {10, 20, 30, 40}
    s3 = {10, 20, 90}
    print(s2.issubset(s1))  # True
    print(s3.issubset(s1))  # False
    
    # 一个集合是否是另一个集合的超集
    print(s1.issuperset(s2))  # True
    print(s1.issuperset(s3))  # False
    
    #两个集合是否有交集
    print(s2.isdisjoint(s3))  # False
    s4 = {100, 200, 300}
    print(s2.isdisjoint(s4))  # True
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    4.集合的数学操作

    方法含义
    A.intersection(A) 或者 A & BA与B的交集
    A.union(B) 或者 A | BA与B的并集
    A.difference(B) 或者 A - BA与B的差集
    A.symmetric_difference(B) 或者 A ^ BA与B的对称差集
    在这里插入图片描述
    # 两个集合是否相等(元素同,就相等)
    s1 = {10, 20, 30, 40}
    s2 = {20, 30, 40, 50, 60}
    
    #(1)交集操作
    print(s1.intersection(s2))  # {40, 20, 30}
    print(s1 & s2)  # {40, 20, 30}
    
    #(2)并集操作
    print(s1.union(s2))  # {40, 10, 50, 20, 60, 30}
    print(s1 | s2)  # {40, 10, 50, 20, 60, 30}
    
    #(3)差集操作
    print(s1.difference(s2))  # {10}
    print(s2 - s1)  # {50, 60}
    
    #(4)对称差集
    print(s1.symmetric_difference(s2))  # {50, 10, 60}
    print(s1 ^ s2)  # {50, 10, 60}
    
    #经过交集,并集,差集操作之后
    print(s1)  # {40, 10, 20, 30}
    print(s2)  # {40, 50, 20, 60, 30}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    5.集合生成式

    s = { i * i for i in range(10)}
    print(s)  # {0, 1, 64, 4, 36, 9, 16, 49, 81, 25}
    
    
    • 1
    • 2
    • 3
  • 相关阅读:
    MCE | 神经元为胰腺癌细胞提供营养
    systemctl 命令设置开机自启动失败
    杰理之复位源【篇】
    C# 图解教程 第5版 —— 第15章 事件
    深度学习入门:使用CMSIS-NN在微控制器上部署模型的完整指南与Python Jupyter实践
    Prompt之美:如何设计提示词让大模型变“聪明”
    TiDB故障处理之让人迷惑的Region is Unavailable
    java常见题
    【Python机器学习】零基础掌握DictVectorizer特征提取
    GIS重投影的方法
  • 原文地址:https://blog.csdn.net/weixin_45865773/article/details/132882045