2017-04-11 105 views
-2

我是新来的Python我有有许多重复键为字典中的一个键添加多个值?

{'key1': 'value1', 'key2': 'value2','key1': 'value3', 'key3': 'value4','key1': 'value5'......} 

字典想这样

{ 
"key1": [value1,value3,value5], 
"key2": [value2], 
"key3": [value4] 

}

我怎样才能做到这一点的输出?

+5

你不能,因为字典不能有重复键。只是将它们列在字典视图(您使用的字面语法)中*不起作用*;你只剩下一个字典,其中只有最后一个给定键名的值。 –

+0

你不能有重复的密钥,但你可以找到一些解决方法:http://www.wellho.net/mouth/3934_Multiple-identical-keys-in-a-Python-dict-yes-you-can- .html – Dadep

+0

我也在想你的对象可能不是Python字典。你的对象是什么类型(可以从'type(your-object-name)'得到这个?或者你能向我们展示打印你的对象的原始输出吗? –

回答

0

假设您要从包含重复键列表/元组实现这一点,你可以这样做:

from collections import defaultdict 
dupes = (('k1', 1), ('k2', 2), ('k1', 3), ('k3', 4)) 
res = defaultdict(list) 
for k,v in dupes: 
    res[k].append(v) 

print(res) 
defaultdict(<type 'list'>, {'k3': [4], 'k2': [2], 'k1': [1, 3]}) 
相关问题