Lista de valores para chaves duplicadas no dicionário Python
Desculpas de antemão se esta questão já foi explorada aqui - eu olhei para respostas diferentes aqui, mas não consegui encontrar o que eu preciso.
Meu objetivo é criar um dicionário como esse -{'a':[10, 9, 10, 10], 'b':[10, 9, 1, 0], 'c':[0, 5, 0, 1], and so on}
O que eu tenho é vários dicionários com chaves duplicadas (mesmas chaves em todos os outros dicionários), algo como isto{'a':10, 'b': 0, 'c': 2}
{'a':7, 'b': 4, 'c': 4}
{'a':4, 'b': 5, 'c': 3}
Eu não tenho como saber o número de tais dicionários, ou se existem chaves que continuam até 'f', ou um 'g' nelas, mas eu sei que as chaves estão duplicadas. eu tenteidefaultdict
mas o que eu ganho é--
defaultdict(<type 'list'>, {'a': [10]})
defaultdict(<type 'list'>, {'a': [10], 'b': [3]})
defaultdict(<type 'list'>, {'a': [10], 'b': [3], 'c': [0]})
e depois a mesma coisa para o próximo dicionário -
defaultdict(<type 'list'>, {'a': [4]})
defaultdict(<type 'list'>, {'a': [4], 'b': [5]})
defaultdict(<type 'list'>, {'a': [4], 'b': [5], 'c': [1]})
O código que tenho para a saída acima é -
d = collections.defaultdict(list)
for k, v in z.iteritems():
d[k].append(v)
c = d.items()
print d
Se eu fizer umprint c
em vez disso (para imprimird.items()
) Eu recebo --
[('a', [10])]
[('a', [10]), ('b', [3])]
[('a', [10]), ('c', [0]), ('b', [3])]
que é repetido novamente para cada dicionário. Como obtenho 1 dict segurando todas as chaves, valores -
{'a':[10,0,..], 'b':[4, 3, 4,..], etc.} ?
Eu também devo acrescentar que os dicts que eu tenho são o resultado de um loop for e não são armazenados individualmente em uma variável única.