[英]Python lookup dictionary by value in list and return a different value from that dictionary
我一直試圖弄清楚如何在一個 IF 語句中優雅地做到這一點,但沒有什么運氣。
我有以下內容 - 一個查找值,比如說 VOLVO,然后是一個包含各種汽車及其屬性的字典列表,例如
car_list = [{'MODEL': 'VOLVO', 'COLOUR': 'RED', 'MANUAL': True},
{'MODEL': 'FORD', 'COLOUR': 'BLUE', 'MANUAL': False}]
所以我想要實現的是一個 IF 語句,上面寫着:IF VOLVO IS MANUAL。 所以基本上使用 VOLVO 查找然后返回 MANUAL 鍵的值。
希望這是有道理的。 我知道可以通過以下方式實現:
result = next(item for item in car_list if item["MODEL"] == "VOLVO")
if result['MANUAL']:
pass
但如果可能的話,我想在一行 IF 語句中干凈利落地做到這一點。
提前感謝您的任何幫助和建議!
您可以使用列表推導來獲取所有沃爾沃:
[car for car in car_list if car['MODEL'] == 'VOLVO']
然后,假設列表中只有一輛沃爾沃,您需要列表中的第一輛(也是唯一一輛)汽車:
[car for car in car_list if car['MODEL'] == 'VOLVO'][0]
然后,您需要該車的 MANUAL 值:
[car for car in car_list if car['MODEL'] == 'VOLVO'][0]['MANUAL']
我建議你這樣:
car_list = [{'MODEL': 'VOLVO', 'COLOUR': 'RED', 'MANUAL': True},
{'MODEL': 'FORD', 'COLOUR': 'BLUE', 'MANUAL': False}]
for car in car_list:
if car.get('MANUAL',-1) == True:
print('yes')
pass
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.