Skip to main content
 首页 » 编程设计

python之字典 Python 中重复键的值列表

2025年05月04日12webabcd

<分区>

如果这个问题已经在此处进行了探讨,请提前致歉 - 我在这里查看了不同的答案,但找不到我需要的答案。

我的目标是创建一个这样的字典 -- {'a':[10, 9, 10, 10], 'b':[10, 9, 1, 0], 'c': [0, 5, 0, 1], 等等

我所拥有的是多个具有重复键的字典(所有其他字典中的键都相同),就像这样 {'a':10, 'b': 0, 'c': 2} {'a':7, 'b': 4, 'c': 4} {'a':4, 'b': 5, 'c': 3}

我无法知道此类词典的数量,或者其中是否有继续到“f”或“g”的键,但我知道这些键是重复的。我试过 defaultdict 但我得到的是——

defaultdict(<type 'list'>, {'a': [10]}) 
defaultdict(<type 'list'>, {'a': [10], 'b': [3]}) 
defaultdict(<type 'list'>, {'a': [10], 'b': [3], 'c': [0]}) 

然后对下一个字典做同样的事情 --

defaultdict(<type 'list'>, {'a': [4]}) 
defaultdict(<type 'list'>, {'a': [4], 'b': [5]}) 
defaultdict(<type 'list'>, {'a': [4], 'b': [5], 'c': [1]}) 

上面输出的代码是--

d = collections.defaultdict(list) 
    for k, v in z.iteritems(): 
        d[k].append(v) 
        c = d.items() 
        print d 

如果我改为执行 print c(打印 d.items()),我会得到 --

[('a', [10])] 
[('a', [10]), ('b', [3])] 
[('a', [10]), ('c', [0]), ('b', [3])] 

对每个字典再次重复。我如何获得 1 个包含所有键、值的字典——

{'a':[10,0,..], 'b':[4, 3, 4,..], etc.} ? 

我还应该补充一点,我的字典是 for 循环的结果,而不是单独存储在一个唯一的变量中。