2016-07-06 3 views
0

Я пытаюсь создать список словарей, в которых словари внутри списка создаются из существующего списка словарей, для которых новый словарь должен быть создан из совокупность пар ключ-значение каждого словаря в существующем списке словарей, если ключ является членом другого предшествующего списка (child_container).Понимание словаря в понимании списка, за словарь в другом списке

Или, другими словами, я пытаюсь отфильтровать ключи в словарях (d) в списке словарей (child_container), которые не являются членами list_multiple_tagnames.

[d for d in child_container if isinstance(d, dict) for k, v in d.iteritems() if k in lst_multiple_tagnames] 

планируемый эффект для словаря, чтобы быть ПЕР словаре г в child_container, только с парами ключ-значение, которые находятся в lst_multiple_tagnames.

ответ

1

Необходимо использовать определение dict, составная для не фиксирует область для каждого словаря.

[{k:v for k,v in d.iteritems() if k in lst_multiple_tagnames} for d in child_container if isinstance(d, dict)] 
0
assume child_container = [{ 1:1,3:324,2:2334}, {1:123},{2:2}] 
for d in child_container: 
...  if isinstance(d,dict): 
...   for k in d: 
...    res[k] = res.get(k,[]) + [d[k]] 
print res 
{1: [1, 123], 2: [2334, 2], 3: [324]}