6.5 数据容器:集合

学习Python中的一个重要数据容器:集合

集合不支持元素的重复(自带去重功能),并且内容无序。

集合的定义

1
2
3
4
5
# 定义集合变量
a = {1,2,3,4,5,4,3,2,1}
# 定义空集合
b = set()
print(a)	# 输出{1, 2, 3, 4, 5} 发现自动去重

集合的常用操作

因为集合是无序的,所以集合 不支持下标索引 ,但是集合是可以修改的

添加新元素 add

1
2
3
4
a = {1,2,3,4,5,'hi'}
a.add('hello')	# 添加成功
a.add('hi')		# 添加失败,因为被自动去重
print(a)		# 输出{1, 2, 3, 4, 5, 'hi', 'hello'}

移除元素 remove

1
2
3
a = {1,2,3,4,5,'hi'}
a.remove('hi')
print(a)

从集合中随机抽取元素 pop

1
2
3
4
a = {1,2,3,4,5,'hi'}
b = a.pop()
print(a)
print(b)

注意:取出元素后集合本身被修改,对应元素移除,因此你需要用一个变量来接收取出的元素

清空集合 clear

1
2
3
a = {1,2,3,4,5,'hi'}
a.clear()
print(a)

取出两个集合的差集 difference

语法:集合1.difference(集合2),功能:取出集合1和集合2的差集 (集合1有而集合2没有的,即 C=A-A∩B)

结果:得到一个新集合,集合1和集合2不变

1
2
3
4
5
6
set1 = {1,2,3}
set2 = {1,5,6}
set3 = set1.difference(set2)
print(set3)		# 结果:{2,3} 	得到的新集合
print(set1)		# 结果:{1,2,3} 不变
print(set2)		# 结果:{1,5,6} 不变

消除两个集合的差集

语法:集合1.difference_update(集合2)

功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素(即 A=A-A∩B

因此只有集合1被修改,不会产生新的集合。

1
2
3
4
5
set1 = {1,2,3}
set2 = {1,5,6}
set1.difference_update(set2)
print(set1)		# 结果{2, 3},被修改
print(set2)		# 结果{1,5,6},不变

两个集合合并

语法:集合1.union(集合2)

功能:将集合1和集合2合并为新集合

1
2
3
4
5
6
set1 = {1,2,3}
set2 = {1,5,6}
set3 = set1.union(set2)
print(set3)		# 结果:{1,2,3,5,6},新集合
print(set1)		# 结果:{1,2,3},不变
print(set2)		# 结果:{1,5,6},不变

统计集合元素数量

1
2
a = {1,2,3,4,5,'hi'}
print(len(a))

集合的循环遍历

注意:因为集合不支持下标索引,所以无法为while循环提供条件,因此只能使用for循环

for循环

1
2
3
a = {1,2,3,4,5,'hi'}
for element in a:
    print(element)
Licensed under CC BY-NC-SA 4.0
已存在于互联网
发表了126篇文章 · 总计210.25k字
萌ICP备20267077号
Powered by ctOS