Извините заранее, если этот вопрос уже рассмотрен здесь - здесь я посмотрел разные ответы, но не смог найти то, что мне нужно.Список значений для дубликатов ключей в словаре Python
Моя цель состоит в том, чтобы создать словарь, как это - {'a':[10, 9, 10, 10], 'b':[10, 9, 1, 0], 'c':[0, 5, 0, 1], and so on}
Что у меня есть несколько словарей с повторяющимися ключами (одни и те же клавиши в любом другом словаре), что-то вроде этого {'a':10, 'b': 0, 'c': 2}
{'a':7, 'b': 4, 'c': 4}
{'a':4, 'b': 5, 'c': 3}
У меня нет возможности узнать количество таких словарей, или если в них есть ключи, продолжающиеся до «f» или «g», но я знаю, что ключи дублируются. Я попытался defaultdict
, но то, что я получаю is--
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 Dict держит все ключи, значения -
{'a':[10,0,..], 'b':[4, 3, 4,..], etc.} ?
Я хотел бы также добавить, что dicts у меня есть результат для цикла и не хранится отдельно в уникальной переменной.
Я думаю, что сами дикторы находятся в отдельных строках. Когда я запускаю ваше решение, я получаю - 'для k, v в d.items(): AttributeError: объект 'str' не имеет атрибутов 'items''. Позвольте мне посмотреть, могу ли я удалить кавычки - d = d [1: -1] не помогает. – user2480526
Возможно ли, что ваш вход JSON? Если да, вы должны использовать модуль 'json' для его чтения. – Hyperboreus