当前位置:
首页 > Python基础教程 >
-
Python数据结构中集合set实例详解
当然,让我们更深入地探讨Python中集合(set)的数据结构及其用法。集合是一个无序的、不包含重复元素的集合体,它主要用于数学上的集合操作,如并集、交集、差集和对称差集等。以下是关于Python集合set的详细实例解析:
### 1. 集合的创建
- **使用大括号{}(但空集合必须使用`set()`)**:
- **使用`set()`函数**:
### 2. 集合的基本操作
- **添加元素**:
- `add()` 方法:
- **删除元素**:
- `remove()` 方法:删除指定元素,如果元素不存在则抛出`KeyError`
- **集合的运算**:
- 交集(&):
- **集合的其他操作**:
- 成员测试:
### 3. 集合的注意事项
- 集合中的元素必须是不可变类型(如整数、浮点数、字符串、元组等),不能是列表、字典或其他集合等可变类型。
- 集合是无序的,因此每次遍历集合时元素的顺序可能会不同。
- 集合主要用于数学上的集合操作,
最后,如果你对python语言还有任何疑问或者需要进一步的帮助,请访问https://www.xin3721.com 本站原创,转载请注明出处:https://www.xin3721.com/Python/python50442.html
### 1. 集合的创建
- **使用大括号{}(但空集合必须使用`set()`)**:
my_set = {1, 2, 3, 4} # 创建一个包含四个元素的集合
empty_set = set() # 创建一个空集合,注意不是{},{}会创建一个空字典
empty_set = set() # 创建一个空集合,注意不是{},{}会创建一个空字典
- **使用`set()`函数**:
another_set = set([1, 2, 2, 3, 4]) # 集合自动去除重复元素
print(another_set) # 输出: {1, 2, 3, 4}
print(another_set) # 输出: {1, 2, 3, 4}
### 2. 集合的基本操作
- **添加元素**:
- `add()` 方法:
my_set.add(5)
print(my_set) # 输出: {1, 2, 3, 4, 5}
- `update()` 方法:可以添加多个元素(来自另一个集合、列表等)print(my_set) # 输出: {1, 2, 3, 4, 5}
my_set.update([6, 7], {8, 9})
print(my_set) # 输出可能因Python版本和内部实现而异,但包含{1, 2, 3, 4, 5, 6, 7, 8, 9}
print(my_set) # 输出可能因Python版本和内部实现而异,但包含{1, 2, 3, 4, 5, 6, 7, 8, 9}
- **删除元素**:
- `remove()` 方法:删除指定元素,如果元素不存在则抛出`KeyError`
my_set.remove(2)
print(my_set) # 输出: {1, 3, 4, 5, 6, 7, 8, 9}
- `discard()` 方法:删除指定元素,如果元素不存在则不抛出异常print(my_set) # 输出: {1, 3, 4, 5, 6, 7, 8, 9}
my_set.discard(10) # 10不在集合中,不会抛出异常
print(my_set) # 输出同上
- `pop()` 方法:随机删除并返回集合中的一个元素,如果集合为空则抛出`KeyError`print(my_set) # 输出同上
popped_element = my_set.pop()
print(popped_element) # 输出可能是集合中的任意一个元素
- `clear()` 方法:清空集合print(popped_element) # 输出可能是集合中的任意一个元素
my_set.clear()
print(my_set) # 输出: set()
print(my_set) # 输出: set()
- **集合的运算**:
- 交集(&):
set1 = {1, 2, 3}
set2 = {2, 3, 4}
intersection = set1 & set2
print(intersection) # 输出: {2, 3}
- 并集(|):set2 = {2, 3, 4}
intersection = set1 & set2
print(intersection) # 输出: {2, 3}
union = set1 | set2
- 差集(-):
difference = set1 - set2
print(difference) # 输出: {1}
- 对称差集(^):print(difference) # 输出: {1}
symmetric_difference = set1 ^ set2
print(symmetric_difference) # 输出: {1, 4}
print(symmetric_difference) # 输出: {1, 4}
- **集合的其他操作**:
- 成员测试:
print(3 in my_set) # 输出: True 或 False,取决于my_set的内容
- 遍历集合:
for element in my_set:
print(element)
- 获取集合的长度:print(element)
print(len(my_set)) # 输出集合中元素的数量
### 3. 集合的注意事项
- 集合中的元素必须是不可变类型(如整数、浮点数、字符串、元组等),不能是列表、字典或其他集合等可变类型。
- 集合是无序的,因此每次遍历集合时元素的顺序可能会不同。
- 集合主要用于数学上的集合操作,
最后,如果你对python语言还有任何疑问或者需要进一步的帮助,请访问https://www.xin3721.com 本站原创,转载请注明出处:https://www.xin3721.com/Python/python50442.html
栏目列表
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
开启SQLSERVER数据库缓存依赖优化网站性能
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比