python--集合-set

 1  1 # 集合-set
 2  2 #     集合是高中的要给概念
 3  3 #     一堆确定的无序的唯一的数据, 集合中的每一个数据成为一个元素
 4  4 
 5  5 # 集合的定义
 6  6 s = set()
 7  7 print(type(s))
 8  8 print(s)
 9  9 
10 10 # 此时大括号中一定要有值, 否则定义出的是要给dict
11 11 s = {1, 2, 3, 4, 5, 6}
12 12 print(type(s))
13 13 print(s)
14 14 
15 15 # 如果只是用大括号定义,则定义的是要给dict类型
16 16 d = {}
17 17 print(type(d))
18 18 print(d)
19 19 
20 20 
21 21 :::
22 22 <class 'set'>
23 23 set()
24 24 <class 'set'>
25 25 {1, 2, 3, 4, 5, 6}
26 26 <class 'dict'>
27 27 {}

 

  1 # 集合的特征
  2 #     集合内数据无序, 即无法使用索引和分片
  3 #     集合内部数据元素具有唯一性, 可以用来排斥重复数据
  4 #     集合内数据, str, int, float, tuple, 集合等, 即内部只能放置可哈希数据
  5 
  6 # 集合序列操作
  7 # 成员检查
  8 # in, not in
  9 s = {4, 5, "i", "love", "xj"}
 10 print(s)
 11 if "love" in s:
 12     print("爱呀")
 13 if "ni" not in s:
 14     print("挨个锤子")
 15 
 16 # 集合遍历操作
 17 # for 循环
 18 s = {4, 5, "i", "love", "xj"}
 19 print(s)
 20 for i in s:
 21     print(type(i), end=" ")
 22 print()
 23 # 带有元组的集合遍历
 24 s = {(1, 2, 3), ("i", "love", "xj"), (4, 5, 6)}
 25 print(s)
 26 for k, m, n in s:
 27     print(k, "--", m, "--", n)
 28 
 29 for k in s:
 30     print(k)
 31 
 32 
 33 # 集合的内涵
 34 # 以下集合会在初始化后自动过滤重复元素
 35 s = {23, 223, 545, 3, 1, 2, 3, 4, 3, 2, 3, 1, 2, 4, 3}
 36 print(s)
 37 
 38 # 普通集合内涵
 39 ss = {i for i in s}
 40 print(ss)
 41 
 42 # 带条件的集合内涵
 43 # 保留偶数
 44 ss = {i for i in s if i % 2 == 0}
 45 print(ss)
 46 
 47 
 48 # 多循环的集合内涵
 49 s1 = {1, 2, 3, 4}
 50 s2 = {"i", "love", "xj"}
 51 
 52 s = {m*n for m in s1 for n in s2 if m == 3}
 53 print(s)
 54 
 55 
 56 # 集合函数/关于集合的函数
 57 # len, max, min, 跟其他基本一致
 58 s = {43, 23, 56, 223, 4, 2, 1222, 4, 323, 1}
 59 print(len(s))
 60 print(max(s))
 61 print(min(s))
 62 
 63 # set:生成一个集合
 64 list1 = [1, 2, 3, 4, 3, 23, 1, 2, 3, 4]
 65 s = set(list1)
 66 print(s)
 67 
 68 # add:向集合那内添加元素
 69 s = {1, 2, 3}
 70 s.add(334)
 71 print(s)
 72 
 73 # clear
 74 s = {1, 2, 3, 4, 5}
 75 print(id(s))
 76 s.clear()
 77 print(id(s))
 78 # 结果表明clear函数是原地清空数据
 79 
 80 # copy:拷贝
 81 # remove:移除指定的值
 82 
 83 
 84 :::
 85 {4, 5, 'i', 'love', 'xj'}
 86 爱呀
 87 挨个锤子
 88 {4, 5, 'i', 'love', 'xj'}
 89 <class 'int'> <class 'int'> <class 'str'> <class 'str'> <class 'str'> 
 90 {('i', 'love', 'xj'), (4, 5, 6), (1, 2, 3)}
 91 i -- love -- xj
 92 4 -- 5 -- 6
 93 1 -- 2 -- 3
 94 ('i', 'love', 'xj')
 95 (4, 5, 6)
 96 (1, 2, 3)
 97 {545, 1, 3, 2, 4, 23, 223}
 98 {545, 2, 3, 4, 1, 23, 223}
 99 {2, 4}
100 {'xjxjxj', 'lovelovelove', 'iii'}
101 9
102 1222
103 1
104 {1, 2, 3, 4, 23}
105 {1, 2, 3, 334}
106 1648740500648
107 1648740500648

 

 1 接上面内容
 2 # copy:拷贝
 3 # remove:移除指定的值
 4 s = {1, 2, 3, 4, 5}
 5 s.remove(4)
 6 print(s)
 7 s.discard(1)
 8 print(s)
 9 print("*" * 20)
10 s.discard(10)
11 print(s)
12 # s.remove(10)  # 为啥remove不存在的之会报keyerror
13 print(s)
14 
15 
16 # pop随机移除一个元素
17 s = {3, 2, 1, 5, 6, 4, 7}
18 d = s.pop()
19 print(d)
20 print(s)
21 d = s.pop()
22 print(d)
23 print(s)
24 
25 thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
26 print(thisset)
27 pop_data = thisset.pop()
28 print(pop_data)
29 print(thisset)
30 pop_data = thisset.pop()
31 print(pop_data)
32 print(thisset)
33 
34 
35 :::
36 {1, 2, 3, 5}
37 {2, 3, 5}
38 ********************
39 {2, 3, 5}
40 {2, 3, 5}
41 1
42 {2, 3, 4, 5, 6, 7}
43 2
44 {3, 4, 5, 6, 7}
45 {'Google', 'Facebook', 'Runoob', 'Taobao'}
46 Google
47 {'Facebook', 'Runoob', 'Taobao'}
48 Facebook
49 {'Runoob', 'Taobao'}

 

# 集合函数
# intersection :交集
# difference :差集
# union :并集
# issubset :检查一个集合是否为另一个子集
# issuperset :检查一个集合是偶为另一个超集

s1 = {1, 2, 3, 4, 5, 6}
s2 = {5, 6, 7, 8, 9}
s_1 = s1.intersection(s2)
print(s_1)

s_2 = s1.difference(s2)
print(s_2)
s_3 = s1.issubset(s2)
print(s_3)

# frozen:冰冻集合
#     冰冻集合就是不可以进行任何修改的集合
#     frozenset是一种特殊集合

# 创建
s = frozenset()
print(type(s))
print(s)


:::
{5, 6}
{1, 2, 3, 4}
False
<class 'frozenset'>
frozenset()

 

posted @ 2018-09-27 13:50  Supl  阅读(181)  评论(0编辑  收藏  举报