在 Python 中,字典的键(key)确实是唯一且不可重复的。这是字典的核心特性之一,具有以下特点:
1. 唯一性约束
每个键在字典中只能出现一次。若尝试为同一个键多次赋值,后面的值会覆盖前面的值。
python
my_dict = {'apple': 1, 'banana': 2, 'apple': 3}
print(my_dict) 输出: {'apple': 3, 'banana': 2}
2. 键必须可哈希(Hashable)
键必须是不可变类型(如 `str`, `int`, `float`, `tuple` 等),且能通过哈希函数生成唯一标识。
❌ 错误示例:用列表作为键会报错 `TypeError`。
如果你需要处理潜在重复的键,可以:
1. 合并字典时保留所有值
使用 `collections.defaultdict` 将重复键的值存储为列表:
python
from collections import defaultdict
data = [('a', 1), ('b', 2), ('a', 3)]
d = defaultdict(list)
for key, value in data:
d[key].append(value)
print(d) 输出: defaultdict(
2. 优先保留最后出现的值
合并字典时,后面的字典覆盖前面的:
python
dict1 = {'a': 1, 'b': 2}
dict2 = {'a': 3, 'c': 4}
merged = {dict1, dict2} {'a': 3, 'b': 2, 'c': 4}
python
if 'apple' in my_dict:
print("键存在!")
python
value = my_dict.get('apple', 0) 若键不存在,返回默认值 0
字典通过哈希表实现,键的唯一性保证了:
1. 快速查找:直接通过哈希值定位数据,时间复杂度 O(1)。
2. 数据完整性:避免因重复键导致的数据歧义。
如果需要存储多对多关系,可以考虑使用嵌套字典或 `collections` 模块的其他数据结构。
版权声明: 知妳网保留所有权利,部分内容为网络收集,如有侵权,请联系QQ793061840删除,添加请注明来意。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态
