Maison >développement back-end >Tutoriel Python >Comment trouver efficacement le premier élément correspondant dans une liste Python ?

Comment trouver efficacement le premier élément correspondant dans une liste Python ?

DDD
DDDoriginal
2024-12-07 19:26:20233parcourir

How to Efficiently Find the First Matching Item in a Python List?

Obtenir le premier élément d'une liste qui correspond à une condition sans traiter la liste entière

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.

Python 2.6 et Python 3 :

Pour ces versions, envisagez ensuite une fonction intégrée cela donne les deux approches suivantes :

  1. Relever StopIteration :

    next(x for x in the_iterable if x > 3)
  2. Renvoi d'une valeur par défaut (par exemple, Aucune) :

    next((x for x in the_iterable if x > 3), default_value)

Python <= 2.5 :

Remarque : Les solutions ci-dessous sont moins efficaces que celles pour Python 2.6 puisqu'ils traitent la liste entière.

  1. méthode suivante :

    .next()

    Si aucun élément ne satisfait à la condition, StopIteration est déclenché immédiatement.

  2. 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
  3. 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
  4. Essayer/sauf StopIteration :

    try:
        first_item = next(x for x in the_iterable if condition(x))
    except StopIteration:
        return None
  5. 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn