得到一个子集Python字典的一个列表
问题描述:
我的词典列表,像下面这样:得到一个子集Python字典的一个列表
[{'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}]
答
初始化你需要的密钥列表:
keys = {'name', 'id'}
提取您的键值对的list
/dict
理解。
filtered_data = [{k : x[k] for k in x.keys() & keys} for x in data] # thanks, vaultah!
的x.keys() & keys
位将在python3.x只有工作,因为x.keys()
返回为一个set
和交集操作确保,如果你试图访问一个不特定的子存在的关键不KeyError
上升-dict。
+1
或'[{k:x [k] for k in x.keys()&keys} for x in data]' – vaultah
+0
@vaultah其实计算出来了,谢谢 –
你如何确定“特定键”? –
我更新了示例以使其更清晰。基本上我有一堆不同的键与他们的值为每个成员,但只试图提取名称和ID。 – user1781482