Comment trouver le premier élément qui correspond aux critères de la liste Python

Aperçu

Un mémo qui a étudié comment effectuer des opérations semblables à ʻArray.prototype.find () `en JavaScript en Python.

javascript trouver()


const fruits = ["apple", "lemon", "melon", "orange"];
const elm = fruits.find(e => e.endsWith("n"));
console.log(elm); // "lemon"

Méthode utilisant la fonction de filtre

La fonction filter reçoit une fonction anonyme décrite par une expression lambda comme premier argument et l'applique à chaque élément de la liste du deuxième argument. L'élément pour lequel le résultat est vrai est extrait et un itérateur est renvoyé, de sorte que le résultat peut être obtenu sous forme de liste en appliquant la fonction list.

fonction de filtre


    fruits = ["apple", "lemon", "melon", "orange"]
    #fonction de filtre
    lst = list(filter(lambda x: x.endswith("n"), fruits))
    assert lst == ["lemon", "melon"]
    #fonction de filtrage Aucun élément correspondant
    lst = list(filter(lambda x: x.endswith("x"), fruits))
    assert lst == []

L'application de la fonction next au lieu de la fonction list vous donnera le premier élément qui répond aux critères. Dans le deuxième argument de la fonction filter, spécifiez None comme valeur par défaut lorsque l'élément n'est pas trouvé. (Notez que sans cette spécification, une exception StopIteration sera lancée et le système se terminera anormalement.)

fonction de filtre+rechercher par fonction suivante


    #fonction de recherche par filtre
    elm = next(filter(lambda x: x.endswith("n"), fruits), None)
    assert elm == "lemon"
    #fonction de recherche par filtre Aucun élément correspondant
    elm = next(filter(lambda x: x.endswith("x"), fruits), None)
    assert elm == None

Rechercher par générateur

Une expression de générateur est une expression qui définit un générateur dans une notation telle que la notation d'inclusion de liste. Puisqu'un générateur renvoie un itérateur, il peut être passé à la fonction next.

Type de générateur+rechercher par fonction suivante


    #Rechercher par générateur
    elm = next((f for f in fruits if f.endswith("n")), None)
    assert elm == "lemon"
    #Rechercher par expression de générateur Aucun élément correspondant
    elm = next((f for f in fruits if f.endswith("x")), None)
    assert elm == None

Le premier argument est une expression de générateur. La différence avec la notation d'inclusion de liste est qu'elle est placée entre () au lieu de [].

Type de générateur


(f for f in fruits if f.endswith("x"))

Recommended Posts

Comment trouver le premier élément qui correspond aux critères de la liste Python
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
Comment déterminer l'existence d'un élément sélénium en Python
Comment effacer un taple dans une liste (Python)
[Python] Comment afficher les valeurs de liste dans l'ordre
Comment obtenir une liste de fichiers dans le même répertoire avec python
Comment obtenir une liste d'exceptions intégrées pour python
Comment vérifier en Python si l'un des éléments d'une liste est dans une autre liste
Comment compter le nombre d'occurrences de chaque élément de la liste en Python avec poids
Extraire la valeur la plus proche d'une valeur à partir d'un élément de liste en Python
[Python] Programmation pour trouver le nombre de a dans une chaîne de caractères qui se répète un nombre spécifié de fois.
Comment passer le résultat de l'exécution d'une commande shell dans une liste en Python (version non bloquante)
Comment vérifier la taille de la mémoire d'une variable en Python
Comment déterminer qu'une clé croisée a été entrée dans Python3
[Introduction à Python] Comment utiliser l'opérateur in dans l'instruction for?
Comment vérifier la taille de la mémoire d'un dictionnaire en Python
Un script qui renvoie 0, 1 attaché au premier Python prime
Comment supprimer plusieurs positions (index) spécifiées dans une liste Python
[Python] Un programme qui fait pivoter le contenu de la liste vers la gauche
[Python] Comment convertir une liste bidimensionnelle en liste unidimensionnelle
Comment obtenir stacktrace en python
[Python] Comment mettre n'importe quel nombre d'entrées standard dans la liste
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
Comment bien formater une liste de dictionnaires (ou d'instances) en Python
Comment trier en spécifiant une colonne dans le tableau Python Numpy.
Comment utiliser la bibliothèque C en Python
Comment incorporer des variables dans des chaînes python
Comment créer un fichier JSON en Python
Copiez la liste en Python
Comment notifier les canaux Discord en Python
Comment obtenir les fichiers dans le dossier [Python]
[Python] Comment dessiner un histogramme avec Matplotlib
[Python] Trouvez la matrice de translocation en notation d'inclusion
Comment supprimer les éléments en double dans la liste Python 3
[Circuit x Python] Comment trouver la fonction de transfert d'un circuit en utilisant Lcapy
[python] Comment trier par le Nth Mth élément d'un tableau multidimensionnel
La chose semblable à une recherche de liste en Python
[Python] Solution au problème que les éléments sont liés lors de la copie d'une liste
Comment récupérer la nième plus grande valeur en Python
Comment obtenir le nom de la variable lui-même en python
Comment obtenir le nombre de chiffres en Python
Comment connaître le répertoire actuel en Python dans Blender
Comment écrire un type liste / dictionnaire de Python3
Trouvez la partie 575 de Wikipedia en Python
Choses à noter lors de l'initialisation d'une liste en Python
[Python] Comment écrire une docstring conforme à PEP8
[Python] Comment trier un dict dans une liste et une instance dans une liste
Comment utiliser le modèle appris dans Lobe en Python
Comment exécuter une commande à l'aide d'un sous-processus en Python
[Linux] Comment mettre votre IP dans une variable
Comment tester unitaire une fonction contenant l'heure actuelle à l'aide de Freezegun en Python
Trouver des erreurs en Python
[Python] Comment utiliser la liste 1
Comment développer en Python
Comment trouver le nombre optimal de clusters pour les k-moyennes
[python] Comment vérifier si la clé existe dans le dictionnaire
Découvrez la largeur apparente d'une chaîne en python
[Python] Comment créer une liste de chaînes de caractères caractère par caractère
Comment découper un bloc de plusieurs tableaux à partir d'un multiple en Python
Comment déboguer une bibliothèque Python standard dans Visual Studio