【问题标题】:How to create python dictionary which can have duplicate keys?如何创建可以有重复键的python字典?
【发布时间】:2021-05-14 19:34:47
【问题描述】:

我想做一本像di = {1: 2, 1: 3, 2: 4, 2: 5, 3: 13, 3:14} 这样的字典。这里key 1 有多个值,我想要这个字典di,但是在添加键和值之后我得到di = {1: 3, 2: 5, 3:14}。有什么办法可以实现重复键值字典。这不是家庭作业。

【问题讨论】:

  • 也许你希望 di 成为一个列表 di = [{1:2}, {1:3}, {2:4}, .... ] 或者字典中的每个键都应该指向一个列表 di = {1: [2,3], 2:[4,5], .....}。你不能在字典中重复一个键
  • 简短的回答是 Python 字典中不能有重复的键。您正在尝试做的是multimap。您可以通过自己构建一些东西来复制它。检查this 答案。也有可能完全有另一种解决方案可以用来尝试解决您的问题。您要解决的实际问题是什么,需要这种类型的实现?
  • 您希望将多个值关联到单个键的任何具体原因? dicts 是键值对,因此不可能有 2 个相同的键。

标签: python-3.x dictionary


【解决方案1】:

字典不能有重复的键。如果您尝试将多个值与单个键关联,这可以通过使用可迭代来保存值(例如列表或集合)来完成。

di = {1: (2,3), 2: (4,5), 3: (13,14)}

【讨论】:

  • 我们不能像这样使用默认 dict 分割它 di ={ 1:2,1:3 , 2:4, 2:5 ,3:13, 3:14 } 吗?
  • @Akashnitter defaultdict 提供了一种向尚不存在的键添加值的方法,而不是用于复制键。
  • 不,正如@Oso 所说。 dict 不能有重复的键,所以无论collections.defaultdict 可以为我们做什么,它都不允许重复的键。虽然它肯定会使附加到键的值更容易:-)
  • 好的,谢谢
猜你喜欢
  • 2021-02-21
  • 2016-07-09
  • 2023-03-19
  • 2020-06-24
  • 2012-05-26
  • 1970-01-01
  • 2020-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多