zoukankan      html  css  js  c++  java
  • 集合的增删改查、集合类型的关系测试

                                                   集合类型

    • 如何同时找出买了IPhone7和8的人?

    • 集合的增删改查

     1 #创建集合
     2 s = {}                        #字典
     3 print(type(s))                #结果为:<class 'dict'>
     4 
     5 s1 = {1,2,3,4,5}              #集合
     6 print(type(s1))               #结果为:<class 'set'>
     7 
     8 #将列表转化为集合
     9 l= [1,2,3,4,5,2,3]
    10 print(l)                      #结果为:[1, 2, 3, 4, 5, 2, 3]
    11 print(set(l))                 #结果为:{1, 2, 3, 4, 5}
    12 print(type(set(l)))           #结果为:<class 'set'>
    13 
    14 
    15 #集合的增删改查
    16 #增加
    17 s2 = {1,2,3,4,5}
    18 #增加一个已存在的值
    19 s2.add(2)
    20 print(s2)                    #结果为:{1, 2, 3, 4, 5}
    21 #增加一个没有的值
    22 s2.add(8)
    23 print(s2)                    #结果为:{1, 2, 3, 4, 5, 8}
    24 
    25 #删除
    26 # 集合是无序的,随机删除一个元素
    27 s2.pop()
    28 print(s2)                    #结果为:{2, 3, 4, 5, 8}
    29 #删除集合中指定的元素
    30 s2.remove(8)
    31 print(s2)                    #结果为:{2, 3, 4, 5}
    32 #remove方法,删除集合中不存在的元素会报错
    33 #s2.remove(6)                 #结果为:KeyError: 6,
    34 #discard方法,删除集合中不存在的元素不会报错(类似于字典中的get方法)
    35 s2.discard(6)
    36 print(s2)                    #结果为:{2, 3, 4, 5}
    37 
    38 #把多个值加入集合
    39 s2.update([10,12,15,1,2,3,4,5])
    40 print(s2)                    #结果为:{1, 2, 3, 4, 5, 10, 12, 15}
    41 
    42 #清空set中的内容;
    43 s2.clear()
    44 print(s2)                    #结果为:set()
    45 
    46 #print(help(dic4.pop()))查看字典的帮助信息;

                                            集合类型的关系测试

     1 #交集(买了iphone7并且还买了iPhone8的人)
     2 iphone7 = {'alex','rain','jack','old_driver'}
     3 iphone8 = {'alex','jack','shanshan','old_boy'}
     4 print(iphone7.intersection(iphone8))              #结果为:{'jack', 'alex'}
     5 print(iphone7 & iphone8)                          #结果为:{'jack', 'alex'}
     6 
     7 #差集
     8 iphone7 = {'alex','rain','jack','old_driver'}
     9 iphone8 = {'alex','jack','shanshan','old_boy'}
    10 #买了iphone7却没有买iPhone8的人
    11 print(iphone7.difference(iphone8))                #结果为:{'rain', 'old_driver'}
    12 print(iphone7 - iphone8)                          #结果为:{'rain', 'old_driver'}
    13 #买了iphone8却没有买iPhone7的人
    14 print(iphone8.difference(iphone7))                #结果为:{'shanshan', 'old_boy'}
    15 print(iphone8 - iphone7)                          #结果为:{'shanshan', 'old_boy'}
    16 
    17 #并集(买了iphone7或者iPhone8的人)
    18 iphone7 = {'alex','rain','jack','old_driver'}
    19 iphone8 = {'alex','jack','shanshan','old_boy'}
    20 print(iphone8.union(iphone7))                     #结果为:{'shanshan', 'old_boy', 'rain', 'alex', 'jack', 'old_driver'}
    21 print(iphone8 | iphone7)                          #结果为:{'shanshan', 'old_boy', 'rain', 'alex', 'jack', 'old_driver'}
    22 print(iphone7.union(iphone8))                     #结果为:{'old_driver', 'old_boy', 'alex', 'rain', 'shanshan', 'jack'}
    23 print(iphone7 | iphone8)                          #结果为:{'old_driver', 'old_boy', 'alex', 'rain', 'shanshan', 'jack'}
    24 
    25 #对称差集(只买了iphone7 或者 只买了iPhone8的人)
    26 iphone7 = {'alex','rain','jack','old_driver'}
    27 iphone8 = {'alex','jack','shanshan','old_boy'}
    28 print(iphone7.symmetric_difference(iphone8))       #结果为:{'old_driver', 'rain', 'shanshan', 'old_boy'}
    29 print(iphone8.symmetric_difference(iphone7))       #结果为:{'old_driver', 'rain', 'shanshan', 'old_boy'}
    30 print(iphone7 ^ iphone8)                           #结果为:{'old_driver', 'rain', 'shanshan', 'old_boy'}
    31 print(iphone8 ^ iphone7)                           #结果为:{'old_driver', 'rain', 'shanshan', 'old_boy'}
    32 
    33 #子集和超集(超集和子集可以使用> 或<符号来表示)
    34 s = {1,2,3,4}
    35 s2 = {2,3,5,6}
    36 s2.add(1)
    37 s2.add(4)
    38 print(s2)                                          #结果为:{1, 2, 3, 4, 5, 6}
    39 print(s)                                           #结果为:{1, 2, 3, 4}
    40 #判断 s 是不是 s2 的子集  s <= s2
    41 print(s.issubset(s2))                              #结果为:True
    42 #判断 s 是不是 s2 的超集  s >= s2
    43 print(s.issuperset(s2))                            #结果为:False
    44 #判断 s2 是不是 ss 的超集 s2 >= s
    45 print(s2.issubset(s2))                             #结果为:True
    46 
    47 #当集合中的数据量特别大时,可以用s.isdisjoint()判断 是不是 不相交
    48 print(s.isdisjoint(s2))                            #结果为:False
    49 print(s2.isdisjoint(s))                            #结果为:False
    50 
    51 l = {1,2,3,4,-1,-2}
    52 l1 = {1,2,3,4,5,6}
    53 #将l与l1差集的结果赋值给l
    54 l.difference_update(l1)
    55 print(l)                                           #结果为:{-2, -1}
    56 #将l与l1差集的结果赋值给l1
    57 l1.difference_update(l)
    58 print(l1)                                          #结果为:{5, 6}
  • 相关阅读:
    鲜牛奶与纯牛奶的区别 All In One
    Rough Notation Animation All In One
    java基础编程String及相关
    JDBC1
    java基础数据类型
    java基础编程
    JDBC3
    MYSQL1
    JDBC2
    JSP和Servlet的相同点和不同点,他们之间的联系
  • 原文地址:https://www.cnblogs.com/wqq0723/p/9531508.html
Copyright © 2011-2022 走看看