作为新手自学Python的第七天,技术低微,希望可以通过这种方式督促自己学习。
个人学习环境:python3.9,PyCharm 2021.3.2 (Community Edition)
———————————————————————————————————————————
集合是Python语言提供的内置数据结构,与列表、字典一样都是可变类型的序列
集合是没有value的字典
1、集合的创建
第一种:使用'{ }'
复制代码
1
2
3
4
5
6
7sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu', 'Baidu'} # 输出集合,重复的元素被自动去掉 print(sites) """ 结果为: {'Baidu', 'Runoob', 'Google', 'Facebook', 'Taobao', 'Zhihu'} """
输出结果为乱序说明集合具有无序性
集合中的元素不允许重复
第二种:使用内置函数set()
复制代码
1
2
3
4
5
6s1 = set(range(6)) print(s1, type(s1)) """ 结果为: {0, 1, 2, 3, 4, 5} <class 'set'> """
使用set()可以将数组、元组、列表、字符串、集合等转为集合
复制代码
1
2
3
4
5
6
7s2 = set('Python') print(s2) """ 结果为: {'n', 'o', 'P', 'y', 't', 'h'} <class 'set'> """
复制代码
1
2# 定义一个空集合 s3 = set() # 如果使用'{}'直接定义的话,数据类型是字典类型
2、集合的相关操作
2.1 集合元素的判断操作
in 或 not in
2.2 集合元素的新增操作
第一种:使用add()方法,添加单个元素
第二种:使用update()方法,添加多个元素
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13s = {10, 20, 30, 400, 500} s.add(80) print(s) """ 结果为: {400, 80, 20, 500, 10, 30} """ s.update({200, 300, 600}) print(s) """ 结果为: {200, 10, 300, 400, 80, 20, 500, 600, 30} """
update()中可以新添的元素类型有集合、列表、元组,不过列表、元组只是将其中的元素添加至集合,不是添加列表、元组
2.3 集合的删除操作
第一种:使用remove()方法,删除一个指定元素
第二种:使用discard()方法,删除一个指定元素,若元素不存在不报错
第三种:使用pop()方法,删除一个任意元素,不能指定元素
第四种:使用clear()方法,清空集合
3、集合间的关系
3.1 两个集合是否相等(元素相同,就相等)
可以使用运算符 == 或者 != 行判断
3.2 一个集合是否是另一个集合的子集
可以调用方法issubset进行判断
复制代码
1
2
3
4
5
6
7
8
9
10s1 = {10, 20, 30, 40, 50, 60} s2 = {10, 20, 30, 40} s3 = {10, 20, 90} print(s2.issubset(s1)) print(s3.issubset(s1)) """ 结果为: True False """
3.3 一个集合是否是另一个集合的超集
可以调用方法issuperset进行判断
复制代码
1
2
3
4
5
6
7print(s1.issuperset(s2)) print(s1.issuperset(s3)) """ 结果为: True False """
3.4 两个集合是否没有交集
可以调用方法isdisjoint进行判断
复制代码
1
2
3
4
5
6
7
8print(s2.isdisjoint(s3)) s4 = {100, 200, 300} print(s2.isdisjoint(s4)) """ 结果为: False 有交集为False True 没有交集为True """
4、集合的数学操作
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36# set可以进行集合运算 a = set('abracadabra') b = set('alacazam') print(a) # a 和 b 的差集 print('差集为:') # difference() 与 - 等价 print(a.difference(b)) print(a - b) # a 和 b 的并集 print('并集为:') # union() 与 | 等价 print(a.union(b)) print(a | b) # a 和 b 的交集 print('交集为:') # intersection() 与 & 等价 print(a.intersection(b)) print(a & b) # a 和 b 中不同时存在的元素 print('对称差集:') # symmetric_difference() 与 ^ 等价 print(a.symmetric_difference(b)) print(a ^ b) """ 结果为: {'a', 'r', 'c', 'b', 'd'} 差集为: {'r', 'b', 'd'} {'r', 'b', 'd'} 并集为: {'m', 'a', 'l', 'r', 'c', 'b', 'z', 'd'} {'m', 'a', 'l', 'r', 'c', 'b', 'z', 'd'} 交集为: {'a', 'c'} {'a', 'c'} 对称差集: {'m', 'z', 'b', 'l', 'r', 'd'} {'m', 'z', 'b', 'l', 'r', 'd'} """
5、集合生成式
用于生成集合的公式
复制代码
1{ i * i for i in range(1,10) }
注意:将 { } 修改为 [ ] 就是列表生成式,没有元组生成式
复制代码
1
2
3
4
5
6
7
8
9
10
11lst = [i*i for i in range(10)] print(lst) a = {i*i for i in range(10)} print(a) """ 结果为: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] {0, 1, 64, 4, 36, 9, 16, 49, 81, 25} """
最后
以上就是笑点低八宝粥最近收集整理的关于Python自学第七天——集合的全部内容,更多相关Python自学第七天——集合内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复