在Python中,字典(`dict`)的键(key)具有唯一性,即每个键只能出现一次。如果尝试为同一个键重复赋值,后赋的值会覆盖之前的值。以下是关键点总结和常见处理方式:
1. 键的唯一性
字典中的键是唯一的,不可重复。若多次使用同一个键赋值,最后一次赋值会生效。
python
d = {'a': 1, 'a': 2}
print(d) 输出: {'a': 2}
2. 覆盖机制
当新键与现有键冲突时,字典会自动覆盖旧值,不会引发错误。
python
d = {}
d['key'] = 'first'
d['key'] = 'second'
print(d) 输出: {'key': 'second'}
当数据源中存在重复键(如解析文件、用户输入),需根据需求选择处理方式:
直接使用普通字典,后续赋值自动覆盖前值:
python
pairs = [('a', 1), ('a', 2), ('b', 3)]
d = dict(pairs)
print(d) 输出: {'a': 2, 'b': 3}
仅在键不存在时添加:
python
d = {}
for key, value in pairs:
if key not in d:
d[key] = value
print(d) 输出: {'a': 1, 'b': 3}
将值存储为列表,适合需要保留所有值的场景:
python
from collections import defaultdict
d = defaultdict(list)
for key, value in pairs:
d[key].append(value)
print(d) 输出: {'a': [1, 2], 'b': [3]}
字典的键必须是不可变类型(如字符串、数字、元组),而可变类型(如列表)不能作为键:
python
valid_key = ('tuple', 1) 合法
invalid_key = ['list'] 非法,会引发 TypeError
使用 `defaultdict` 或条件判断可灵活管理重复键的冲突。
版权声明: 知妳网保留所有权利,部分内容为网络收集,如有侵权,请联系QQ793061840删除,添加请注明来意。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态