簡體   English   中英

從詞典列表中提取項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM