• Python中的集合


    集合是Python提供的内置数据结构
    与列表、字典一样都属于可变类型的序列
    集合是没有value的字典
    只能存储不同的值
    在这里插入图片描述

    集合的创建方式

    • 直接{}
      s={'hello','world',1314}
    • 使用内置函数set()
    s=set(range(6))
    print(s)
    print(set([3,4,53,56]))
    print(set((3,4,43,435)))
    print(set('Python')
    print(set({124,3,4,4,5}))
    print(set())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    集合元素的判断操作

    in或者not in

    s = {1, 2, 3, 4, 5, 6, 99, 7, 100}
    print(s) # {1, 2, 3, 4, 5, 6, 99, 7, 100}
    print(1 in s) # True
    print(10 in s) # False
    print(20 not in s) # True
    
    • 1
    • 2
    • 3
    • 4
    • 5

    集合元素的新增操作

    • 调用add()方法,一次添加一个元素
    s = {1, 2, 3, 4, 5, 6, 7}
    s.add(8)
    print(s) # {1, 2, 3, 4, 5, 6, 7, 8}
    
    • 1
    • 2
    • 3
    • 调用update()方法至少添加一个元素
      update(元组/集合/列表)
    s = {1, 2, 3, 4, 5, 6, 7}
    s.update({8,9})
    print(s) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
    
    • 1
    • 2
    • 3

    集合元素的删除操作

    • remove()
      调用remove()方法,一次删除一个指定元素,如果指定的元素不存在抛出KeyError
    • discard()
      调用discard()方法,一次删除一个指定元素,如果指定的元素不存在不抛出异常
    • pop()
      调用pop()方法,一次只删除一个任意元素,不能指定元素
    • clear()
      clear()方法,清空集合

    集合间的关系

    • 两个集合是否相等
      可以使用运算符==或!=进行判断
    • 一个集合是否是另一个集合的子集
      可以调用方法issubset()进行判断
    s1 = {1, 2, 3}
    s2 = {1, 2, 3, 10}
    print(s1.issubset(s2)) # true
    
    • 1
    • 2
    • 3
    • 一个集合是否是另一个集合的超集
      可以调用方法issuperset()进行判断
    s1 = {1, 2, 3}
    s2 = {1, 2, 3, 10}
    print(s2.issuperset(s1)) # true
    
    • 1
    • 2
    • 3
    • 两个集合是否没有交集
      可以可以调用isdisjoint进行判断
    s1 = {1, 2, 3, 11}
    s2 = {1, 2, 3, 10}
    s3 = {4, 5, 6}
    print(s2.isdisjoint(s1)) # False 意思是有交集
    print(s2.isdisjoint(s2)) # True 意思是有交集
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 交集
      返回两个集合相同的部分
    s1 = {1, 2, 3, 11}
    s2 = {1, 2, 3, 10}
    print(s1.intersection(s2)) # {1, 2, 3}
    
    • 1
    • 2
    • 3
    • 并集
      返回两个集合相同和不相同元素的集合
    s1 = {1, 2, 3, 11}
    s2 = {1, 2, 3, 10}
    print(s1.union(s2)) # {1, 2, 3, 10, 11}
    
    • 1
    • 2
    • 3
    • 差集
      返回两个集合相减的部分
    s1 = {1, 2, 3, 11}
    s2 = {1, 2, 3, 10}
    print(s1-s2) # { 11 }
    print(s1.difference(s2)) # { 11 }
    
    • 1
    • 2
    • 3
    • 4
    • 对称差集
      剔除两个集合都有的元素,剩下的元素组成一个新集合。
    s1 = {1, 2, 3, 11}
    s2 = {1, 2, 3, 10}
    s1 = {1, 2, 3, 11}
    s2 = {1, 2, 3, 10}
    print((s2 - s1) | (s1 - s2)) # {10, 11}
    print(s2.symmetric_difference(s1)) # {10, 11}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    集合生成式

    { i*i for i in range(1,10) }

    s = {i*i for i in range(1,10)}
    print(s) # {64, 1, 4, 36, 9, 16, 49, 81, 25}
    
    • 1
    • 2
  • 相关阅读:
    百度低质量站点怎么办?解决百度低质量站点的方法和工具
    如何创建一个aop
    TCP(三次握手和四次挥手)与UDP特点、概念、区别
    Python爬虫——Urllib库-1
    没网络也能安装.Net 3.5!如何脱机安装.NET Framework 3.5
    (二十六)数据结构-数组
    【笔录】TVP技术沙龙:寻宝AI时代
    Multiscale Vision Transformers 论文详解
    麒麟KYLINIOS软件仓库搭建02-软件仓库添加新的软件包
    Vue3 - watch 侦听器(超详细使用教程)
  • 原文地址:https://blog.csdn.net/gushendezhufu/article/details/126352952