У меня есть список словарей. Назовем его: list_of_dict
. Словари в списке имеют вид:
{'a' : 1,
'b' : 5,
'c' : 3,
'd' : 6}
и
{'a' : 3,
'f' : 2,
'g' : 1,
'h' : 3,
'i' : 5,
'j' : 3}
У меня есть еще один список под названием list_to_match
, который содержит только несколько букв: ['a', 'f', 'x']
Мне нужно перебрать list_of_dict
и найти ключи, соответствующие элементу в списке, и добавить значения в пустой defaultdict элементов списка. Если не найдено, добавьте 0 к списку.
defaultdict
инициализируется как:
d = collections.defaultdict(list)
Я хочу, чтобы возможный defaultdict выглядел так:
{'a' : [1, 3],
'f' : [0, 2],
'x' : [0, 0]}
Пока что у меня есть:
for ld in list_of_dict:
for match in list_to_match:
for k, v in ld.items():
d[match].append(v)
d[match].append(0)
Теперь все это работает, кроме последней строки, потому что, очевидно, совпадения в этой области не существует. Теперь все, что я получаю в defaultdict, это:
{'a' : [1, 3],
'f' : [2]}
0 отсутствует, как и x. Как это исправить?
0
, чем None или что-то в этом роде. - person panaceanoob   schedule 24.10.2018