python之set

集合set 是装有独特值的无序“袋子”。一个简单的集合可以包含任何数据类型的值。如果有两个集合,则可以执行像联合、交集以及集合求差等标准集合运算。

1. 无序,相对于list、tuple来说,set没有index的概念

2. 唯一值,set里的每个值都是唯一的,这就很有用了,类似数据库里的unique key

 

 

集合间的操作

要检测某值是否是集合的成员,可使用 in 运算符。其工作原理和列表的一样。
union() 方法返回一个新集合,其中装着 在两个 集合中出现的元素。(合集)
intersection() 方法返回一个新集合,其中装着 同时 在两个集合中出现的所有元素。(交集)
difference() 方法返回的新集合中,装着所有在 a_set 出现但未在 b_set 中的元素。(差集)

symmetric_difference() 方法返回一个新集合,其中装着所有 只在其中一个 集合中出现的元素。

### Python `set()` 集合元素的无序性 `set()` 是一种内置的数据结构,用于存储唯一的元素集合。重要的是,`set()` 中的元素是没有固定顺序的[^1]。 ```python example_set = {1, 2, 'three', 4} print(example_set) # 输出可能为 {'three', 1, 2, 4} 或其他排列方式 ``` 由于 `set()` 的内部实现基于哈希表,这决定了其无法保持插入顺序。每次打印同一个 `set()` 对象时,可能会得到不同的显示顺序。 #### 处理元素顺序的方法 如果需要维护元素的插入顺序并去除重复项,可以考虑使用 `list()` 结合字典推导式来达到目的: ```python from collections import OrderedDict unordered_data = ['apple', 'banana', 'orange', 'apple', 'pear'] ordered_unique_elements = list(OrderedDict.fromkeys(unordered_data)) print(ordered_unique_elements) # 输出: ['apple', 'banana', 'orange', 'pear'] ``` 另一种更简洁的方式是从 Python 3.7 开始,在标准库中引入了保留插入顺序特性的字典类型,可以直接利用此特性配合集合操作: ```python unique_ordered_items = list(dict.fromkeys(['apple', 'banana', 'orange', 'apple'])) print(unique_ordered_items) # 输出: ['apple', 'banana', 'orange'] ``` 对于某些场景下确实需要有序且唯一元素的情况下,还可以选择使用 `sorted()` 函数对 `set()` 进行排序,从而获得按特定规则排序后的列表形式的结果: ```python unsorted_numbers = {9, 8, 7, 6, 5, 4, 3, 2, 1} sorted_numbers = sorted(unsorted_numbers) print(sorted_numbers) # 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9] ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值