python字典算法
Python字典是一种高效的哈希表实现,常用于快速查找和键值对存储。以下是与字典相关的核心算法和应用
1. 字典基础操作
python
d1 = {} 空字典
d2 = dict(a=1, b=2) 使用构造函数
d3 = {'name': 'Alice', 'age': 25} 直接初始化
python
value = d3['name'] 访问,KeyError若键不存在
d3['age'] = 26 修改
d3['city'] = 'Paris' 新增键值对
val = d3.get('phone', 'N/A') 安全访问,返回默认值
python
del d3['city'] 删除键
age = d3.pop('age') 删除并返回值
2. 常见算法应用
统计元素频率
python
from collections import defaultdict
nums = [1, 2, 3, 2, 1, 3, 3]
counts = defaultdict(int)
for num in nums:
counts[num] += 1
或使用普通字典
counts = {}
for num in nums:
counts[num] = counts.get(num, 0) + 1
两数之和(快速查找)
python
def two_sum(nums, target):
seen = {}
for i, num in enumerate(nums):
complement = target
if complement in seen:
return [seen[complement], i]
seen[num] = i
return []
反转字典(值→键)
处理重复值:
python
from collections import defaultdict
original = {'a': 1, 'b': 2, 'c': 1}
reversed_dict = defaultdict(list)
for k, v in original.items:
reversed_dict[v].append(k)
输出:{1: ['a', 'c'], 2: ['b']}
3. 字典高级操作
python
d1 = {'a': 1}
d2 = {'b': 2}
merged = {d1, d2} Python 3.5+
merged = d1 | d2 Python 3.9+
python
filtered = {k: v for k, v in d.items if v > 10}
python
sorted_by_key = dict(sorted(d.items)) 按键排序
sorted_by_value = dict(sorted(d.items, key=lambda x: x[1]))
4. 底层原理与注意事项
python
shallow_copy = d.copy 浅拷贝
import copy
deep_copy = copy.deepcopy(d) 深拷贝(处理嵌套对象)
5. 性能优化场景
6. 典型错误规避
python
for key in list(d.keys):
if condition(key):
del d[key]
掌握字典的底层原理和高效操作,能够显著提升算法设计能力,尤其在处理查找、统计、缓存等问题时表现优异。