学习笔记-Python基础7-列表元祖字典集合-集合set
1 #集合 2 #一、概念:参照高中数学,一堆确定的无序的唯一数据,没有重复 3 #1、创建set两种方法 4 s = set() 5 print(type(s),s) 6 s = {1, 2, 3} #大括号内一定要有值 7 print(type(s),s) 8 #二、集合特征 9 #1、因为集合内部数据无序,所以无法使用索引和切片 10 #2、合内部数据元素具有唯一性,可排除重复数据 11 #3、内部的元素可以是str、int、float、tuple、冰冻集合等,凡是可以哈希的数据都可以 12 #三、集合的序列操作 13 #1、成员检测:in、note in 14 s = {1, 2, "love", 4, "dadada","i"} 15 print(s) 16 if "love" in s: 17 print("这是珍爱") 18 if "xiaomei" not in s: 19 print("都是假的") 20 #四、集合的遍历 21 #1、for循环遍历 22 for i in s: 23 print(i, end=" ") 24 print() 25 #2、带有元祖的循环遍历 26 s = {(1, 2, 3), ("i", "love", "xxx"), (4, 5, 6)} 27 for k,m,n in s: 28 print(k, "---", m, "---", n) 29 for i in s: 30 print(i) 31 #3、集合的内涵 32 #1、普通集合内涵 33 s = {1, 2, 3, 1, 2, 4} #初始化自动去重 34 print(s) 35 ss = {i for i in s} 36 print(ss) 37 #2、带条件的集合内涵 38 sss = {i for i in s if i % 2 == 0} 39 print(sss) 40 #3、多重循环的集合内涵 41 s1 = {1, 2, 3, 4} 42 s2 = {"i", "love", "www"} 43 s = {m*n for m in s2 for n in s1} 44 print(s) 45 s = {m*n for m in s2 for n in s1 if n == 2} #复制一次s2的每个值 46 print(s) 47 #五、set可以使用的内置函数 48 #len、max、min 49 s = {1, 2, 1, 3} 50 print(len(s),max(s),min(s)) 51 #set,用其他数据生成集合 52 l = [1, 2, 3] 53 s = set(l) 54 print(s) 55 #add,向集合内添加元素 56 s = {1, 2} 57 s.add(111) 58 print(s) 59 #clear,清空自身元素 60 s.clear() 61 print(s) 62 #copy 63 s = {1, 2} 64 ss = s.copy() 65 print(ss) 66 #remove,原set上移除指定值,如果找不到值,会报错 67 s.remove(2) 68 print(s) 69 #discard,原set上移除指定值,如果找不到值,不会报错 70 s.discard(100) 71 print(s) 72 #pop,随机弹出一个元素 73 s = [1, 2, 3] 74 d = s.pop() 75 print(d,s) 76 ''' 77 打印如下: 78 <class 'set'> set() 79 <class 'set'> {1, 2, 3} 80 {1, 2, 4, 'love', 'dadada', 'i'} 81 这是珍爱 82 都是假的 83 1 2 4 love dadada i 84 i --- love --- xxx 85 4 --- 5 --- 6 86 1 --- 2 --- 3 87 ('i', 'love', 'xxx') 88 (4, 5, 6) 89 (1, 2, 3) 90 {1, 2, 3, 4} 91 {1, 2, 3, 4} 92 {2, 4} 93 {'wwwwww', 'lovelovelovelove', 'wwwwwwwww', 'iiii', 'www', 'love', 'lovelove', 'wwwwwwwwwwww', 'ii', 'lovelovelove', 'i', 'iii'} 94 {'wwwwww', 'lovelove', 'ii'} 95 3 3 1 96 {1, 2, 3} 97 {1, 2, 111} 98 set() 99 {1, 2} 100 {1} 101 {1} 102 3 [1, 2] 103 '''
1 #集合的函数:交叉并补 2 #intersection,交集,相交的那块 3 #difference,差集,去掉相交的那块求剩下的 4 #union,并集,把二者去重后合起来 5 #issubset,检查一个集合是不是另一个集合的子集 6 #issuperset,检查一个集合是否是另一个集合的超集 7 s1 = {1, 2, 3, 4} 8 s2 = {3, 4, 5, 6} 9 s_1 = s1.intersection(s2) 10 print(s_1) 11 s_2 = s1.difference(s2) 12 print(s_2) 13 s_3 = s1.union(s2) 14 print(s_3) 15 #集合的数学操作 16 s1 = {1, 2, 3, 4} 17 s2 = {3, 4, 5, 6} 18 s_1 = s1 - s2 #相当于求差集操作 19 print(s_1) 20 #frozenset冰冻集合,一种特殊集合,不能进行修改,除此之外具有集合的所有特性 21 s = frozenset() 22 print(type(s),s) 23 ''' 24 打印如下: 25 {3, 4} 26 {1, 2} 27 {1, 2, 3, 4, 5, 6} 28 {1, 2} 29 <class 'frozenset'> frozenset() 30 '''