Maison >développement back-end >Tutoriel Python >Comment trouver le premier élément correspondant dans un itérable en Python ?

Comment trouver le premier élément correspondant dans un itérable en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-10 17:24:11717parcourir

How to Find the First Matching Element in an Iterable in Python?

Trouver le premier élément correspondant dans un itérable

Pour récupérer l'élément initial d'un itérable qui répond à une condition spécifique, vous pouvez adopter l'approche suivante :

Python 2.6 et Python 3

Pour ceux qui ont besoin de lancer Cas pour StopIteration (si aucune correspondance n'est trouvée) :

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

Pour les scénarios dans lesquels vous souhaitez renvoyer une valeur par défaut (par exemple Aucune) :

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

Python 2.5 et versions antérieures

Vous pouvez utiliser la méthode .next() de l'itérateur, qui se déclenchera immédiatement si l'itérateur se termine immédiatement (c'est-à-dire qu'aucun élément de l'itérable ne satisfait à la condition) Arrêter l'itération. Si cette situation ne vous intéresse pas (par exemple, vous savez qu'il y a certainement au moins un élément qui remplit la condition), vous pouvez utiliser directement .next().

Si vous vous en souciez vraiment, vous pouvez utiliser itertools, une boucle for...: break ou genexp pour implémenter votre fonction. Cependant, ces alternatives n'apportent pas beaucoup de valeur ajoutée, il est donc recommandé d'utiliser la version plus simple que vous avez proposée initialement :

def first(the_iterable, condition = lambda x: True):
    for i in the_iterable:
        if condition(i):
            return i

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