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

时间:2015-02-12 06:00:39

标签: python python-3.x dictionary

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

它有相同的键'a'

我希望从这个dic中获取所有值

但是当我使用

>>> dic.get('a')

只返回

['4a','5a']

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

我曾想过使用重复语句来检查所有键,但它似乎效率低下

3 个答案:

答案 0 :(得分:3)

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

>>> from collections import defaultdict

>>> dic = defaultdict(list)

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

答案 1 :(得分:2)

你说:

>>> 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'已经消失了,“第二次出现的同一把密钥被”踩踏“。

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

答案 2 :(得分:0)

Python词典不支持重复键,请检查此主题是否有解决方案,make dictionary with duplicate keys in python