集合

  1 '''
  2 集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复。
  3 不可变是可哈希的: 数字  字符串 bool 元组
  4 可变是不可哈希的 :字典{}  列表  集合
  5 {}
  6 
  7 '''
  8 
  9  set1 = set({1,2,3})
 10  set2 = {1,2,3,[2,3],{'name':'alex'}}  # 错的
 11  print(set1)
 12  print(set2)
 13 
 14 
 15  li = ['alex',123,True,(1,2,3,'wusir'),[1,2,3,'小明',],{'name':'alex'}]
 16  # li.extend(123) # 报错,int是不可迭代对象
 17  # print(li)
 18  li.extend('123') # 字符串是可迭代对象,添加的时候都分开添加,拆成‘1’,‘2’,‘3’
 19  print(li)
 20 
 21  set1 = {'alex','wusir','ritian','egon','barry',}
 22  23 add
 24  set1.add('女神')
 25 update
 26  set1.update('abc') # 可迭代增加,类似于列表中的extend('123')
 27  结果{'wusir', 'ritian', 'barry', 'egon', 'alex', 'b', 'c', 'a'}
 28  print(set1) # 无序的
 29 
 30 删除
 31  print(set1.pop())
 32  print(set1) # 随机删除某个值
 33  结果
 34  {'egon', 'b', 'wusir', 'ritian', 'barry', 'alex', 'c', 'a'}
 35  egon
 36  {'b', 'wusir', 'ritian', 'barry', 'alex', 'c', 'a'}
 37 
 38  set1.remove('alex')  # 按元素
 39  print(set1)
 40 
 41  set() 空集合 ,{}空字典
 42  set1.clear()
 43  print(set1)  # set()
 44 
 45 
 46  del set1
 47  print(set1)
 48 
 49  没有改,每个元素是不可变数据类型
 50 
 51  52  只能for 循环查
 53  for i in set1:
 54      print(i)
 55 
 56  求交集
 57  set1 = {1,2,3,4,5}
 58  set2 = {4,5,6,7,8}
 59  set3 = set1 & set2  #求交集
 60  print(set3)  # {4, 5}
 61  print(set1.intersection(set2))  # {4, 5} #求交集
 62 
 63  求并集
 64  set1 = {1,2,3,4,5}
 65  set2 = {4,5,6,7,8}
 66  print(set1 | set2)  # {1, 2, 3, 4, 5, 6, 7,8}  # 求并集
 67  print(set2.union(set1))  # {1, 2, 3, 4, 5, 6, 7}  # 求并集
 68 
 69  反交集,就是除了交集以外的部分,如交集是{4,5}
 70  set1 = {1,2,3,4,5}
 71  set2 = {4,5,6,7,8}
 72  print(set1 ^ set2)  # {1, 2, 3, 6, 7, 8}
 73  print(set1.symmetric_difference(set2))  # {1, 2, 3, 6, 7, 8}
 74 
 75 
 76 差集
 77  set1 = {1,2,3,4,5}
 78  set2 = {4,5,6,7,8}
 79  print(set1 - set2)  # {1, 2, 3}
 80  #set1独有的,set2没有的部分
 81  print(set1.difference(set2))  # {1, 2, 3}
 82 
 83 子集
 84  set1 = {1,2,3,}
 85  set2 = {1,2,3,4,5,6}
 86  print(set1 < set2)
 87  print(set1.issubset(set2))  # 这两个相同,都是说明set1是set2子集。
 88  print(set2 > set1)
 89  print(set2.issuperset(set1))  # 这两个相同,都是说明set2是set1超集。
 90 
 91 去重
 92  将列表转化成集合自动去重,然后再将集合转化成列表,就完成了列表去重
 93  li = [1,2,33,33,2,1,4,5,6,6]
 94  set1 = set(li)
 95  print(set1)
 96  li = list(set1)
 97  print(li)
 98  s1 = {1,2,3}
 99  print(s1,type(s1))
100 
101  转化成不可变数据类型
102 s1 = {1,2,3}
103 print(s1,type(s1))
104 s = frozenset('barry')
105 print(s,type(s))
106 for i in s:
107     print(i)

 

posted @ 2020-02-01 18:34  菩提老祖师傅  阅读(78)  评论(0)    收藏  举报