Ce n'est peut-être pas exactement ce que vous recherchez, mais je crois qu'il vaut la peine de présenter ce scénario.
Supposons que vous ayez un list
de dictionnaires, comme celui-ci :
>>> fruits
[{'name': 'apple', 'quantity': 5}, {'name': 'banana', 'quantity': 4}]
Avec une compréhension normale de la liste, vous pouvez trouver l'objet que vous cherchez :
>>> [d for d in fruits if d['name'] == 'apple']
[{'name': 'apple', 'quantity': 5}]
Vous obtenez ainsi une liste avec un seul élément, grâce à la fonction if
condition ci-dessus.
Par conséquent, vous pouvez indexer le seul élément, en accédant à l'une des clés du dictionnaire et en lui attribuant une valeur :
>>> [d for d in fruits if d['name'] == 'apple'][0]['quantity'] += 1
Voici le résultat :
>>> fruits
[{'name': 'apple', 'quantity': 6}, {'name': 'banana', 'quantity': 4}]