我是靠谱客的博主 笑点低八宝粥,这篇文章主要介绍Python自学第七天——集合,现在分享给大家,希望可以做个参考。

作为新手自学Python的第七天,技术低微,希望可以通过这种方式督促自己学习。

个人学习环境:python3.9,PyCharm 2021.3.2 (Community Edition)

———————————————————————————————————————————

集合是Python语言提供的内置数据结构,与列表、字典一样都是可变类型的序列

集合是没有value的字典

1、集合的创建

第一种:使用'{ }'

复制代码
1
2
3
4
5
6
7
sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu', 'Baidu'} # 输出集合,重复的元素被自动去掉 print(sites) """ 结果为: {'Baidu', 'Runoob', 'Google', 'Facebook', 'Taobao', 'Zhihu'} """

输出结果为乱序说明集合具有无序性

集合中的元素不允许重复

第二种:使用内置函数set()

复制代码
1
2
3
4
5
6
s1 = set(range(6)) print(s1, type(s1)) """ 结果为: {0, 1, 2, 3, 4, 5} <class 'set'> """

使用set()可以将数组、元组、列表、字符串、集合等转为集合

复制代码
1
2
3
4
5
6
7
s2 = set('Python') print(s2) """ 结果为: {'n', 'o', 'P', 'y', 't', 'h'} <class 'set'> """
复制代码
1
2
# 定义一个空集合 s3 = set() # 如果使用'{}'直接定义的话,数据类型是字典类型

2、集合的相关操作

2.1 集合元素的判断操作

        innot in

2.2 集合元素的新增操作

第一种:使用add()方法,添加单个元素

第二种:使用update()方法,添加多个元素

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
s = {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
10
s1 = {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
7
print(s1.issuperset(s2)) print(s1.issuperset(s3)) """ 结果为: True False """

3.4 两个集合是否没有交集

可以调用方法isdisjoint进行判断

复制代码
1
2
3
4
5
6
7
8
print(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
11
lst = [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自学第七天——集合内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部