python - How to get a value from a dict in a list of dicts -
python - How to get a value from a dict in a list of dicts -
in list of dicts:
lst = [{'fruit': 'apple', 'qty':'4', 'color': 'green'}, {'fruit': 'orange', 'qty':'6', 'color': 'orange'}, {'fruit': 'melon', 'qty':'2', 'color': 'yellow'}]
i want value of 'fruit'
key 'color'
key's value 'yellow'
.
i tried:
any(fruits['color'] == 'yellow' fruits in lst)
my colors unique , when returns true
want set value of fruitchosen
selected fruit, 'melon'
in instance.
you utilize next()
function generator expression:
fruit_chosen = next((fruit['fruit'] fruit in lst if fruit['color'] == 'yellow'), none)
this assign first fruit dictionary match fruit_chosen
, or none
if there no match.
alternatively, if leave out default value, next()
raise stopiteration
if no match found:
try: fruit_chosen = next(fruit['fruit'] fruit in lst if fruit['color'] == 'yellow') except stopiteration: # no matching fruit!
demo:
>>> lst = [{'fruit': 'apple', 'qty':'4', 'color': 'green'},{'fruit': 'orange', 'qty':'6', 'color': 'orange'},{'fruit': 'melon', 'qty':'2', 'color': 'yellow'}] >>> next((fruit['fruit'] fruit in lst if fruit['color'] == 'yellow'), none) 'melon' >>> next((fruit['fruit'] fruit in lst if fruit['color'] == 'maroon'), none) none true >>> next(fruit['fruit'] fruit in lst if fruit['color'] == 'maroon') traceback (most recent phone call last): file "<stdin>", line 1, in <module> stopiteration
python dictionary
Comments
Post a Comment