Python课堂12——六大数据结构之集合

时间:2024-02-19 11:06:56

文章目录

  • 前言
  • 一、集合是什么?
  • 二、集合的常见操作
    • 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中最基础的东西,打好基础,迈出了这一步,我们就能够在未来学习更加深奥的东西,让我们一起继续学习吧!