Python 如何从字典中获取所有值的同名键

Python How can I get all values same name keys from dictionary

>>> dic = {'a': ['1a','2a','3a'],'b': ['1b','2b'], 'a' : ['4a','5a']}

它有相同的键'a'

我想从这个 dic

中获取所有值

但是当我使用

>>> dic.get('a')

只有returns

['4a','5a']

如何从中获取所有 'a' 键的值?

我想过使用重复的语句来检查所有的键,但似乎效率不高

字典不能存储重复的键。一种解决方法是将列表或集合存储在字典中。我建议您将值存储在指向相同键的集合中。

>>> from collections import defaultdict

>>> dic = defaultdict(list)

>>> dic['a'].extend(['1a','2a','3a'])
>>> dic['a'].extend(['4a','5a'])
>>> dic['b'].extend(['1b','2b'])

Python 字典不支持重复键,请查看此线程以获取解决方案,make dictionary with duplicate keys in python

你说:

>>> dic = {'a': ['1a','2a','3a'],'b': ['1b','2b'], 'a' : ['4a','5a']}
It has same keys 'a'

不,它没有:

>>> dic = {'a': ['1a','2a','3a'],'b': ['1b','2b'], 'a' : ['4a','5a']}
>>> dic
{'a': ['4a', '5a'], 'b': ['1b', '2b']}

第一次出现的键 'a' 已经消失,"trampled over" 第二次出现相同的键。

我怀疑你正在将 dic 构建为像这样的 dict 文字(我认为这样的文字应该引发异常,因为它完全没有意义,但是,唉,它没有't) -- 您能否向我们展示您为构建 dict 而使用的实际代码? 然后 我们可能会建议如何实际构建您想要的 dict!-)