文章目录
- 前言
- 一、集合是什么?
- 二、集合的常见操作
- 1.创建空集合
- 2.基本操作
- 3.成员运算符(in; not in)
- 4.计算集合的长度——len()
- 5.复制集合——copy()
- 6.集合的集合运算
- 总结
前言
Python中的数据结构马上就要结束了,今天我们来学习Python中六大数据结构的最后一部分集合,坚持就是胜利go!
一、集合是什么?
集合是一种数据类型,用于存储一组唯一的元素。集合可以通过花括号{}
来定义,元素之间使用逗号分隔。与列表和元组不同,集合中的元素是无序的,且不允许重复。
语法:语法:set()/{元素,元素2}
集合具备三个特点
:
1.元素必须是不可变类型(字符串 数值 元祖)
2.唯一性 自动去重
3.无序(没有索引,没有办法通过索引对集合进行修改和查询的操作)
代码演示:
s = {1, 1.5, 'a', 'c', 'c', 'a'}
print(s) # 每次输出的顺序不一样,并且会自动去重 {1, 'a', 1.5, 'c'}
二、集合的常见操作
1.创建空集合
1.1 集合.add():添加元素,整体添加
# 因为集合和字典的符号相同,所以创建集合的时候要特别注意
se = {} # 空字典
se1 = set() # 空集合
2.基本操作
2.1 增
2.1.1 集合.add():添加元素,整体添加
代码演示:
se = {1, 2, 3}
se.add('abc')
print(se) # {1, 2, 3, 'abc'}
2.1.2 集合.update(可迭代对象):添加元素,分散添加
代码演示:
se = {1, 2, 3}
se.update('abc')
print(se)
# se.update('e', 'f', 2, 9) # TypeError: 'int' object is not iterable
se.update('e', 'f', [9, 6, 5]) # 添加是可迭代对象,注意里面不能再有列表
print(se)
# 注意:只能添加不可变类型,列表、元组、字典等
2.2 删
2.2.1 remove():删除指定的元素,如果集合会有就会删除,没有就会报错
代码演示:
se = {1, 2, 3}
se.remove(1)
print(se) # {2, 3}
2.2.2 discard() 删除指定的元素,有就会删除,没有就不会发生任何改变,不会报错
代码演示:
se = {1, 2, 3}
se.discard(1)
print(se) # {2, 3}
2.2.3 pop() 删除并返回任意一个元素,如果集合为空,则引发 KeyError 异常
语法:set.pop()
参数: 该函数不接受任何参数。
代码演示:
set1 = {'a', 'b', 'c', 'd'}
answer = set1.pop()
print(answer) # d
print(set1) # {'b', 'a', 'c'}
2.2.4 clear() 方法删除集合中的所有元素:
代码演示:
set1 = {'a', 'b', 'c', 'd'}
set1.clear()
print(set1) # set()
3.成员运算符(in; not in)
这个之前用过好多次了,就不再重复了
4.计算集合的长度——len()
代码演示:
se = {1, 2, 3}
print(len(se)) # 3
5.复制集合——copy()
代码演示:
se = {1, 2, 3}
new_se = se.copy()
6.集合的集合运算
6.1 并集:union() 方法或 | 运算符:
set1.union(set2) 或 set1 | set2
代码演示:
set1 = {'a', 'b', 'c', 'd'}
set2 = {'b', 'c', 'd', 'f'}
print(set1 | set2) # {'c', 'd', 'b'}
6.2 交集:intersection() 方法或 & 运算符:
set1.intersection(set2) 或 set1 & set2
代码演示:
set1 = {'a', 'b', 'c', 'd'}
set2 = {'b', 'c', 'd', 'f'}
print(set1 & set2) # {'c', 'f', 'd', 'b', 'a'}
6.3 差集:difference() 方法或 - 运算符:集合a中有的但是集合b中没有的
set1.difference(set2) 或 set1 - set2
代码演示:
set1 = {'a', 'b', 'c', 'd'}
set2 = {'b', 'c', 'd', 'f'}
print(set1 - set2) # {'a'}
6.4 对称差集:symmetric_difference() 方法或 ^ 运算符:set1.symmetric_difference(set2) 或 set1 ^ set2
代码演示:
set1 = {'a', 'b', 'c', 'd'}
set2 = {'b', 'c', 'd', 'f'}
print(set1 ^ set2) # {'f', 'a'}
总结
历经将近两个星期的学习,关于python中的数据结构我们终于学完了,这也算是python中最基础的东西,打好基础,迈出了这一步,我们就能够在未来学习更加深奥的东西,让我们一起继续学习吧!