2016-07-06 67 views
0

我正在嘗試創建一個字典列表,其中列表中的字典是從預先存在的字典列表創建的,爲此應從其創建新的字典如果密鑰是另一個預先存在的列表(child_container)的成員,則在預先存在的字典列表中的每個字典的鍵值對的集合。或者換句話說,我試圖過濾字典(d)中不是list_multiple_tagnames成員的字典列表(child_container)中的鍵。在列表理解中的字典理解,每個字典在其他列表中

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

的預期效果是用於向PER字典d在child_container製成一個字典,只有那些在lst_multiple_tagnames鍵值對。

回答

1

必須使用詞典理解,複合的不會捕獲per-key-per-dictionary範圍。

[{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]}