Le code suivant est efficace, flexible et concis lors de l'exploration linéaire de target_list.
next(( {x} for {x} in {target_list} if {condition} ),None)
La deuxième variable est la valeur renvoyée si elle n'est pas trouvée.
En utilisant next, il est possible de récupérer la première parmi les conditions, ce qui est efficace.
Exemple
class Hoge(object):
def __init__(self,x,y):
self.x=x
self.y=y
hoge_list=[Hoge(10,20),Hoge(10,30),Hoge(5,3),...]
found=next( (hoge for hoge in hoge_list if hoge.x==10 and hoge.y==30) ,None)
référence http://dev.ionous.net/2009/01/python-find-item-in-list.html
Recommended Posts