[英]extract item from list of dictionaries
假設你有一個像這樣的字典列表:
a = [ {'name':'pippo', 'age':'5'} , {'name':'pluto', 'age':'7'} ]
你從這個列表中只提取名稱==冥王星的dict怎么樣? 為了使事情變得更加困難,請考慮我無法進行任何導入
列表理解是理想的:
[d for d in a if d['name'] == 'pluto']
除了列表理解,其他響應給你,你也可以使用過濾器和lambda:
filter(lambda x: x.get('name') == 'pluto',a)
[d for d in a if d['name'] == 'pluto']
>>> [d['age'] for d in a if d['name']=='pluto']
['7']
使用列表推導,在dicts列表中選擇正確的dict。
>>> [d for d in a if d['name']=='pluto']
[{'age': '7', 'name': 'pluto'}]
或者,如果你不知道如果所有類型的字典的a
有一個“名稱”鍵,
>>> [d for d in a if d.get('name')=='pluto']
[{'age': '7', 'name': 'pluto'}]
請注意,這兩個都返回一個列表 。 如果您知道只有一個匹配條目,則可以在末尾添加[0]
以返回實際的dict:
>>> [d for d in a if d['name']=='pluto'][0]
{'age': '7', 'name': 'pluto'}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.