Obtenir le premier élément satisfaisant une condition spécifique à partir d'une liste potentiellement longue est une opération courante tâche. Bien que des fonctions personnalisées comme la vôtre puissent remplir cet objectif, il peut exister des alternatives plus efficaces intégrées à Python.
Pour ces versions, envisagez ensuite une fonction intégrée cela donne les deux approches suivantes :
Relever StopIteration :
next(x for x in the_iterable if x > 3)
Renvoi d'une valeur par défaut (par exemple, Aucune) :
next((x for x in the_iterable if x > 3), default_value)
Remarque : Les solutions ci-dessous sont moins efficaces que celles pour Python 2.6 puisqu'ils traitent la liste entière.
méthode suivante :
.next()
Si aucun élément ne satisfait à la condition, StopIteration est déclenché immédiatement.
Fonction personnalisée (selon votre configuration initiale proposition):
def first(the_iterable, condition = lambda x: True): for i in the_iterable: if condition(i): return i
itertools:
from itertools import ifilter, islice first_item = next(ifilter(lambda x: x > 3, the_iterable))</h3> <li> <p>pour boucle avec pause:</p> <pre class="brush:php;toolbar:false">for item in the_iterable: if condition(item): break first_item = item
Essayer/sauf StopIteration :
try: first_item = next(x for x in the_iterable if condition(x)) except StopIteration: return None
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!