Python 集合与字典

本文介绍了Python中的集合和字典。集合是无序且不重复的元素集合,可用于成员关系测试、去重和删除数据项。字典是键值对的数据结构,键必须是不可变对象,提供了多种创建、操作和更新方法。内容包括集合的创建、操作符、比较运算以及字典的创建、清空、删除、视图对象、浅拷贝、获取键值和更新方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合

1.概述

集合类型与数学中集合的概念一致,即包含0个或多个数据项的无序组合。集合中元素不可重复,元素类型只能是固定数据类型,例如:整数、浮点数、字符串、元组等,列表、字典和集合类型本身都是可变数据类型,不能作为集合的元素出现。
(1) 集合数据类型是没有顺序的简单对象的聚集,且集合中元素不重复
(2)Python集合数据类型包括可变集合对象(set)和不可变集合对象(frozenset)
(3){}表示空的字典(dict),因为字典也用大括号定义。空集合为set()

2.解析

(1)创建
>>> s = {1,2,3};s
{1, 2, 3}
>>> type(s)
<class 'set'>
>>> s = set();s
set()
>>> type(s)
<class 'set'>

# 直接用{}创建的是字典
>>> s = {}
>>> s
{}
>>> type(s)
<class 'dict'>

# 直接用()创建的是元组
>>> s = ()
>>> type(s)
<class 'tuple'>
(2)判断集合元素是否存在

x in s:如果返回True,则表示存在
x not in s:如果返回True,则表示不存在

>>> s = set('Hello')
>>> s
{'H', 'e', 'l', 'o'}
>>> 'h' in s
False
>>> 'o' not in s
False
(3)集合类型10个操作符
操作符 描述
S - TS.difference(T) 返回一个新集合,包括在集合S中但不在集合T中的元素·
S -= TS.difference_update(T) 更新集合S,包括在集合S中但不在集合T中的元素
S & TS.intersection(T) 返回一个新集合,包括同时在集合S和T中的元素
S &= TS.intersection_update(T) 更新集合S,包括同时在集合S和T中的元素
S ^ TS.symmetric_difference(T) 返回一个新集合,包括集合S和T中的元素,但不包括同时在其中的元素
S ^= TS.symmetric_difference_update(T) 更新集合S,包括集合S和T中的元素,但不包括同时在其中的元素
S|T</
### Python 集合字典的使用方法和差异 #### 一、集合字典的基础概念 集合是一种无序的数据结构,它存储的是独一无二的元素。在 Python 中,集合可以通过大括号 `{}` 或者 `set()` 构造函数创建[^4]。 字典则是由键值对组成的一种映射数据结构,在 Python 3.7 及以上版本中,默认是有序的(而在 3.6 版本中这是实现细节)。字典提供了高效的查找、插入和删除操作,时间复杂度接近 O(1)[^1]。 --- #### 二、集合的常用操作 以下是集合的一些常见用法: - **创建集合** ```python animals = {'cat', 'dog', 'rabbit'} empty_set = set() ``` - **添加元素** ```python animals.add('hamster') print(animals) # 输出: {'cat', 'dog', 'rabbit', 'hamster'} ``` - **移除元素** - 使用 `remove` 方法移除指定元素,如果元素不存在,则会抛出异常。 ```python animals.remove('dog') print(animals) # 输出: {'cat', 'rabbit', 'hamster'} ``` - 使用 `discard` 方法移除指定元素,即使元素不存在也不会报错。 ```python animals.discard('elephant') # 不会报错 ``` - **集合运算** - 并集 (`union`) ```python a = {1, 2, 3} b = {3, 4, 5} c = a.union(b) print(c) # 输出: {1, 2, 3, 4, 5} ``` - 交集 (`intersection`) ```python d = a.intersection(b) print(d) # 输出: {3} ``` - 差集 (`difference`) ```python e = a.difference(b) print(e) # 输出: {1, 2} ``` --- #### 三、字典的常用操作 以下是字典的一些常见用法: - **创建字典** ```python my_dict = {'name': 'Alice', 'age': 25} another_dict = dict(name='Bob', age=30) ``` - **访问元素** - 使用方括号直接访问键对应的值。 ```python print(my_dict['name']) # 输出: Alice ``` - 如果键不存在,可以使用 `get` 方法避免抛出异常。 ```python print(my_dict.get('gender', 'Unknown')) # 输出: Unknown ``` - **修改或新增元素** ```python my_dict['age'] = 26 # 修改已有键的值 my_dict['city'] = 'New York' # 新增键值对 ``` - **删除元素** - 使用 `del` 关键字删除指定键值对。 ```python del my_dict['city'] ``` - 使用 `pop` 方法删除并返回指定键的值。 ```python removed_value = my_dict.pop('age') print(removed_value) # 输出: 26 ``` - **遍历字典** - 遍历键: ```python for key in my_dict.keys(): print(key) ``` - 遍历值: ```python for value in my_dict.values(): print(value) ``` - 同时遍历键和值: ```python for k, v in my_dict.items(): print(f"{k}: {v}") ``` --- #### 四、集合字典的主要区别 | 特性 | 集合 | 字典 | |---------------------|-------------------------------------------|-----------------------------------------| | 数据结构 | 单一元素 | 键值对 | | 是否有序 | 无序 | 自 Python 3.7 开始默认有序 | | 查找效率 | 支持快速查找 | 更高的查找效率 | | 插入/删除效率 | 时间复杂度为 O(1) | 时间复杂度也为 O(1) | | 元素唯一性 | 所有元素必须唯一 | 键唯一,值可以重复 | | 主要用途 | 数学上的集合运算(如并集、交集等) | 存储关联数据 | --- #### 五、代码示例比较 以下是对集合字典的一个简单对比示例: ```python # 集合的操作 s = {1, 2, 3, 4} print(s.union({3, 4, 5})) # 输出: {1, 2, 3, 4, 5} # 字典的操作 d = {'a': 1, 'b': 2} print(d.get('c', 'Not Found')) # 输出: Not Found ``` --- ### 总结 集合适用于需要处理唯一元素以及执行数学集合运算的场景,而字典更适合用来表示键值对应关系,并提供高效的查找能力。两者都具有较高的性能优势,但在具体应用时需根据实际需求选择合适的数据结构[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值