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
!-)
>>> 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
!-)