学习笔记-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 '''

 

posted @ 2018-09-10 15:25  美滋滋的胖虎  阅读(220)  评论(0编辑  收藏  举报