python 字典和*
Python中的字典(dict)和*(set)是两种高效的数据结构,适用于不同的场景。以下是它们的核心概念和用法
字典(Dictionary)
python
person = {'name': 'Alice', 'age': 30}
python
for key in person: ... 遍历键
for key, value in person.items: ... 遍历键值对
python
squares = {x: x2 for x in range(5)} {0:0, 1:1, 2:4, ...}
*(Set)
python
unique_numbers = {1, 2, 3}
python
fs = frozenset([1, 2, 3])
python
letters = {c for c in 'abracadabra' if c not in 'abc'} {'d', 'r'}
关键区别
| 特性 | 字典(dict) | *(set) |
|-|||
| 元素结构 | 键值对(key: value) | 单个元素 |
| 有序性 | Python 3.7+ 有序 | 始终无序 |
| 主要用途 | 快速通过键查找值 | 去重、成员检测 |
| 哈希要求 | 键必须可哈希 | 元素必须可哈希 |
应用场景
1. 字典:
2. *:
注意事项
1. 避免遍历时修改:遍历字典时如需删除元素,先*键列表:
python
for key in list(dict.keys):
if condition: del dict[key]
2. 哈希冲突:自定义对象作为键时,需正确实现 `__hash__` 和 `__eq__`。
3. 版本兼容性:Python 3.7+ 中字典有序,旧版本需用 `collections.OrderedDict`。
掌握字典和*的使用,能显著提升代码效率和简洁性!