Maison >développement back-end >Tutoriel Python >Comment obtenir efficacement le premier élément correspondant à partir d'un itérable en Python ?
Comment obtenir le premier élément correspondant à partir d'un itérable
Dans de nombreux scénarios, les développeurs rencontrent le besoin de récupérer le premier élément d'un itérable qui remplit une condition précise. Bien qu'il soit possible de parcourir l'intégralité de l'itérable, cette approche peut s'avérer inefficace pour les grands ensembles de données.
La prochaine fonction dans Python 2.6 et Python 3
Python 2.6 et versions ultérieures Les versions introduisent la fonction suivante, qui fournit une solution élégante pour cette tâche. En parcourant une expression génératrice à l'aide de la fonction suivante, vous pouvez spécifier la condition :
next(x for x in the_iterable if condition(x))
Si vous souhaitez déclencher StopIteration lorsqu'aucun élément correspondant n'est trouvé, utilisez la syntaxe suivante :
next(x for x in the_iterable if x > 3)
Pour renvoyer une valeur par défaut à la place, utilisez :
next((x for x in the_iterable if x > 3), default_value)
Itérateurs en Python 2.5 et Antérieures
Dans Python 2.5 et les versions antérieures, vous pouvez utiliser la méthode .next() des itérateurs. Cependant, cette méthode déclenchera StopIteration si aucun élément ne satisfait à la condition. Si vous êtes certain qu'au moins un élément correspondant existe, vous pouvez utiliser .next() :
the_iterable.next()
Approches alternatives pour Python 2.5 et versions antérieures
Alternativement, vous pouvez implémenter une fonction comme celle que vous avez initialement suggérée :
def first(the_iterable, condition=lambda x: True): for i in the_iterable: if condition(i): return i
Vous pouvez également utiliser le module itertools, un for... : casser la boucle, ou une genexp pour arriver au même résultat.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!