zoukankan      html  css  js  c++  java
  • python之集合set

    一.集合的特点

      1. 天生去重(去掉重复值)
      2. 可以增,删(准确来说,集合可以增加删除元素,但不能修改元素的值)
      3. 可以方便的求交集,并集,补集

    二.集合的定义

    集合和字典相同,使用大括号{}来定义,但是只存储key,可以将set理解为只存储key的字典;集合是无序的,输出的元素顺序不定

    # 集合的定义
    
    set1 = {"xiaoming", 12, 12, "man", (1, )}
    
    print(set1)
    print(len(set1))
    print(type(set1))
    
    结果如下
    {(1,), 12, 'xiaoming', 'man'}
    4
    <class 'set'>

    三.集合元素的添加和删除

    set2 = {1, 2, 3, 4, 5, 6}
    # 添加集合元素
    set2.add(7)             # 添加一个元素7
    print(set2)
    set2.update([9, 10])    # 一次添加多个元素
    set2.update((11, 12))   # 一次添加多个元素
    print(set2)
    
    # 删除集合元素
    set2.remove(9)          # 删除元素9
    set2.discard(10)        # 删除元素10
    print(set2)
    
    输出结果如下
    {1, 2, 3, 4, 5, 6, 7}
    {1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12}
    {1, 2, 3, 4, 5, 6, 7, 11, 12}

    四.集合的运算

    # 集合的交集(相同的元素)
    set1 = {"xiaoming", 12, 12, "man", (1, )}
    set2 = {1, 2, 3, 4, 5, 6}
    set3 = {2, 4, 6, 8}
    print(set2.intersection(set3))  # 打印set2和set3的交集
    print(set2 & set3)              # &符号也是求交集
    print(set2.isdisjoint(set3))    # 判断set2和set3是否有交集,有交集返回False;没有返回True
    print(set1.isdisjoint(set2))    # 判断set1和set2是否有交集,True
    
    输出结果如下
    {2, 4, 6}
    {2, 4, 6}
    False
    True
    set2 = {1, 2, 3, 4, 5, 6}
    set3 = {2, 4, 6, 8}
    
    # 集合的并集(合并)
    print(set2.union(set3))         # 打印结合set2和set3的并集
    print(set2 | set3)              # |符号也可以求并集
    
    输出结果如下
    {1, 2, 3, 4, 5, 6, 8}
    {1, 2, 3, 4, 5, 6, 8}
    set2 = {1, 2, 3, 4, 5, 6}
    set3 = {2, 4, 6, 8}
    
    # 集合的补集
    print(set2.difference(set3))        # 打印set3集合有,set2集合没有的元素
    print(set2 - set3)                  # set3-set2 也可以求补集
    print(set3.difference(set2))        # 打印set3集合有,set2集合没有的元素
    print(set3 - set2)                  # set3-set2 也可以求补集
    
    输出结果如下
    {1, 3, 5}
    {1, 3, 5}
    {8}
    {8}
    set2 = {1, 2, 3, 4, 5, 6}
    set3 = {2, 4, 6, 8}
    
    # 对称差集
    print(set2.symmetric_difference(set3))  # set2有的set3没有的元素 加上 set2没有set3有的元素
    print(set2 ^ set3)                      # ^符号也可以求对称差集
    
    # 判断一个集合是否是另一个集合的子集
    print(set2.issubset(set3))      # set2是否是集合set3的子集
    print(set2.issuperset(set3))    # set2是否包含set3
    
    输出结果如下
    {1, 3, 5, 8}
    {1, 3, 5, 8}
    False
    False
  • 相关阅读:
    linux消息队列相关操作
    linux下删除3分钟之前指定文件夹下的指定类型文件
    centos6.5安装gmime-2.6
    centos6.5安装filezilla
    posix 正则库程序
    nginx正向vs反向代理
    AbstractQueuedSynchronizer 原理分析
    JAVA NIO详解
    java NIO原理及实例
    Thread类详解
  • 原文地址:https://www.cnblogs.com/golinux/p/10794829.html
Copyright © 2011-2022 走看看