字典中的键不允许重复吗怎么设置

 2025-08-31  阅读 20  评论 0

摘要:在Python中,字典的键是不允许重复的。如果你尝试添加重复的键,后添加的值会覆盖之前的值:
python
d = {'a': 1, 'a': 2}
print(d) 输出: {'a': 2

在Python中,字典的键是不允许重复的。如果你尝试添加重复的键,后添加的值会覆盖之前的值:

字典中的键不允许重复吗怎么设置

python

d = {'a': 1, 'a': 2}

print(d) 输出: {'a': 2}

如果需要“允许重复的键”怎么办?

虽然字典本身不支持重复键,但可以通过以下方法实现类似功能:

方法1:使用列表存储多个值

每个键对应一个列表,保存所有值:

python

from collections import defaultdict

自动为每个键初始化空列表

d = defaultdict(list)

添加值

d['key'].append(1)

d['key'].append(2)

print(d) 输出: defaultdict(, {'key': [1, 2]})

方法2:自定义字典类

重写字典的赋值逻辑,使重复键的值合并到列表:

python

class MultiKeyDict(dict):

def __setitem__(self, key, value):

if key in self:

self[key].append(value)

else:

super.__setitem__(key, [value])

d = MultiKeyDict

d['a'] = 1

d['a'] = 2

print(d) 输出: {'a': [1, 2]}

方法3:使用元组列表

直接存储键值对的列表(允许重复):

python

entries = [('a', 1), ('a', 2), ('b', 3)]

查找所有 'a' 对应的值

values = [v for k, v in entries if k == 'a']

print(values) 输出: [1, 2]

| 需求 | 实现方式 |

||-|

| 强制键唯一 | 直接使用原生字典 |

| 允许键重复,存储所有值 | 使用`defaultdict(list)`或自定义类 |

| 保留所有键值对记录 | 使用元组列表 |

根据实际场景选择最适合的方案!

版权声明: 知妳网保留所有权利,部分内容为网络收集,如有侵权,请联系QQ793061840删除,添加请注明来意。

原文链接:https://www.6g9.cn/qwsh/dd8e5AD5UVldSDw.html

发表评论:

管理员

  • 内容66367
  • 积分0
  • 金币0
关于我们
知妳网是一个专注于知识成长与生活品质的温暖社区,致力于提供情感共鸣、实用资讯与贴心服务。在这里,妳可以找到相关的知识、专业的建议,以及提升自我的优质内容。无论是职场困惑、情感心事,还是时尚美妆、健康生活,知妳网都能精准匹配妳的需求,陪伴妳的每一步成长。因为懂妳,所以更贴心——知妳网,做妳最知心的伙伴!
联系方式
电话:
地址:广东省中山市
Email:admin@qq.com

Copyright © 2022 知妳网 Inc. 保留所有权利。 Powered by

页面耗时0.0360秒, 内存占用1.7 MB, 访问数据库19次