zoukankan      html  css  js  c++  java
  • Python3 集合(set)(十五)

    集合(set)是一个无序不重复元素的序列。

    它的主要作用如下:

    • 去重,把一个列表变成集合,就自动去重了
    • 关系测试,测试两组数据之前的交集、差集、并集等关系

    set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key

    可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

    创建格式:

    1 parame = {value01,value02,...}
    2 或者
    3 set(value)

     例:

     1 #!/usr/bin/python3
     2  
     3 student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
     4  
     5 print(student)   # 输出集合,重复的元素被自动去掉
     6  
     7 # 成员测试
     8 if('Rose' in student) :
     9     print('Rose 在集合中')
    10 else :
    11     print('Rose 不在集合中')
    12  
    13  
    14 # set可以进行集合运算
    15 a = set('abracadabra')
    16 b = set('alacazam')
    17  
    18 print(a)
    19  
    20 print(a - b)     # a和b的差集
    21  
    22 print(a | b)     # a和b的并集
    23  
    24 print(a & b)     # a和b的交集
    25  
    26 print(a ^ b)     # a和b中不同时存在的元素

    以上实例输出结果:

    1 {'Mary', 'Jim', 'Rose', 'Jack', 'Tom'}
    2 Rose 在集合中
    3 {'b', 'a', 'c', 'r', 'd'}
    4 {'b', 'd', 'r'}
    5 {'l', 'r', 'a', 'c', 'z', 'm', 'b', 'd'}
    6 {'a', 'c'}
    7 {'l', 'r', 'z', 'm', 'b', 'd'}

    常用操作:

     1 s = set([3,5,9,10])      #创建一个数值集合  
     2   
     3 t = set("Hello")         #创建一个唯一字符的集合  
     4 
     5 
     6 a = t | s          # t 和 s的并集  
     7   
     8 b = t & s          # t 和 s的交集  
     9   
    10 c = t – s          # 求差集(项在t中,但不在s中)  
    11   
    12 d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)  
    13   
    14    
    15   
    16 基本操作:  
    17   
    18 t.add('x')            # 添加一项  
    19   
    20 s.update([10,37,42])  # 在s中添加多项  
    21   
    22    
    23   
    24 使用remove()可以删除一项:  
    25   
    26 t.remove('H')  
    27   
    28   
    29 len(s)  
    30 set 的长度  
    31   
    32 x in s  
    33 测试 x 是否是 s 的成员  
    34   
    35 x not in s  
    36 测试 x 是否不是 s 的成员  
    37   
    38 s.issubset(t)  
    39 s <= t  
    40 测试是否 s 中的每一个元素都在 t 中  
    41   
    42 s.issuperset(t)  
    43 s >= t  
    44 测试是否 t 中的每一个元素都在 s 中  
    45   
    46 s.union(t)  
    47 s | t  
    48 返回一个新的 set 包含 s 和 t 中的每一个元素  
    49   
    50 s.intersection(t)  
    51 s & t  
    52 返回一个新的 set 包含 s 和 t 中的公共元素  
    53   
    54 s.difference(t)  
    55 s - t  
    56 返回一个新的 set 包含 s 中有但是 t 中没有的元素  
    57   
    58 s.symmetric_difference(t)  
    59 s ^ t  
    60 返回一个新的 set 包含 s 和 t 中不重复的元素  
    61   
    62 s.copy()  
    63 返回 set “s”的一个浅复制
  • 相关阅读:
    .net开发微信(1)——微信订阅号的配置
    工作中EF遇到的问题
    .net Entity Framework初识1
    Razor视图
    jquery中利用队列依次执行动画
    .net找List1和List2的差集
    angularjs ng-if 中的ng-model 值作用域问题
    Spring Boot + JPA(hibernate 5) 开发时,数据库表名大小写问题
    springboot 启动排除某些bean 的注入
    angularjs 初始化方法执行两次以及url定义错误导致传值错误问题
  • 原文地址:https://www.cnblogs.com/jiyimeng/p/python11152.html
Copyright © 2011-2022 走看看