您的位置:首页 > 编程语言 > Python开发

python--集合-set

2020-02-04 01:09 120 查看
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()

 

转载于:https://www.cnblogs.com/Slxc/p/9712632.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
dkd2049 发布了0 篇原创文章 · 获赞 0 · 访问量 40 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: