获取列表的Python字典的子集

时间:2017-10-16 18:46:12

标签: python python-3.x dictionary

我有一个词典列表,如下所示:

[{'name':1, 'id':2, 'otherstuff':3}, {'name':2, 'id':3, 'otherstuff':1}, {'name':3, 'id':1, 'otherstuff':2}]

如何仅将每个成员的特定密钥提取到另一个列表中?

试图得到这个:

[{'name':1, 'id':2}, {'name':2, 'id':3}, {'name':3, 'id':1}]

1 个答案:

答案 0 :(得分:1)

初始化您需要的密钥列表:

val result      = addInt(3, 4)._1
val (result, _) = addInt(3, 4)

keys = {'name', 'id'} / list理解提取您的键值对。

dict

filtered_data = [{k : x[k] for k in x.keys() & keys} for x in data] # thanks, vaultah! 位仅在python3.x中有效,因为x.keys() & keys作为x.keys()返回,并且交集操作确保如果你没有引发set尝试访问该特定子字典中不存在的密钥。