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
Libérer: 2024-12-07 19:26:20
original
224 Les gens l'ont consulté

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)
    Copier après la connexion
  2. Renvoi d'une valeur par défaut (par exemple, Aucune) :

    next((x for x in the_iterable if x > 3), default_value)
    Copier après la connexion

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()
    Copier après la connexion

    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
    Copier après la connexion
  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
    Copier après la connexion
  4. Essayer/sauf StopIteration :

    try:
        first_item = next(x for x in the_iterable if condition(x))
    except StopIteration:
        return None
    Copier après la connexion
  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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal