列表理解中的字典理解,其他列表中的每个字典
Dictionary comprehension within a list comprehension, per dictionary in other list
我正在尝试创建一个字典列表,其中列表中的字典是根据预先存在的字典列表创建的,应该从每个字典的键值对的集合中创建一个新字典预先存在的字典列表中的字典,如果键是另一个预先存在的列表 (child_container) 的成员。
或者换句话说,我试图过滤掉不是 list_multiple_tagnames.[=11 成员的词典列表 (child_container) 中的词典 (d) 中的键=]
[d for d in child_container if isinstance(d, dict) for k, v in d.iteritems() if k in lst_multiple_tagnames]
预期的效果是使字典成为 child_container 中的 PER 字典 d,只有 lst_multiple_tagnames.
中的键值对
必须使用字典理解,复合 for 不捕获每个键每个字典的范围。
[{k:v for k,v in d.iteritems() if k in lst_multiple_tagnames} for d in child_container if isinstance(d, dict)]
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]}
我正在尝试创建一个字典列表,其中列表中的字典是根据预先存在的字典列表创建的,应该从每个字典的键值对的集合中创建一个新字典预先存在的字典列表中的字典,如果键是另一个预先存在的列表 (child_container) 的成员。
或者换句话说,我试图过滤掉不是 list_multiple_tagnames.[=11 成员的词典列表 (child_container) 中的词典 (d) 中的键=]
[d for d in child_container if isinstance(d, dict) for k, v in d.iteritems() if k in lst_multiple_tagnames]
预期的效果是使字典成为 child_container 中的 PER 字典 d,只有 lst_multiple_tagnames.
中的键值对必须使用字典理解,复合 for 不捕获每个键每个字典的范围。
[{k:v for k,v in d.iteritems() if k in lst_multiple_tagnames} for d in child_container if isinstance(d, dict)]
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]}