La méthode filter() et les fonctions Lambda en Python

Vaibhav Vaibhav 14 avril 2022
La méthode filter() et les fonctions Lambda en Python

Souvent, lorsque nous travaillons avec des structures de données itérables telles que des tableaux, des listes et des tuples, nous devons effectuer des opérations de filtrage sur celles-ci.

Le filtrage fait référence à la suppression des valeurs qui correspondent à une condition particulière. On peut effectuer un filtrage en itérant sur la valeur de la structure de données itérable et la valeur à l’aide d’une boucle for ou d’une boucle while et en vérifiant si l’élément satisfait ou non la condition.

Comme il s’agit d’une tâche courante, le langage de programmation Python a une méthode intégrée, filter(). Cette méthode nécessite une fonction pour effectuer la filtration.

Généralement, les méthodes lambda sont considérées pour ce travail car elles sont simples à écrire. Cet article montrera comment utiliser la méthode filter() et les fonctions lambda ensemble en Python.

La méthode filter() et les fonctions lambda en Python

La méthode filter est une méthode intégrée au langage de programmation Python utilisée pour filtrer les éléments d’un itérable qui remplissent une certaine condition. Une fonction représente la condition, et les valeurs pour lesquelles la fonction renvoie True sont prises en compte dans le résultat.

Le filter() accepte deux paramètres ; une fonction de filtrage qui renvoie une valeur booléenne et un objet itérable tel qu’une liste ou un tuple. La méthode filter() est un itérateur ou un objet filter().

Il faut convertir l’itérateur en une liste ou un tuple en utilisant la méthode list() ou la méthode tuple(). Les fonctions lambda en ligne et les fonctions anonymes en Python.

Ces fonctions peuvent être utilisées en complément de la méthode filter.

Les fonctions lambda ont la syntaxe suivante.

lambda < parameters > : < expression >

Les paramètres doivent être séparés par des virgules et l’expression doit renvoyer un résultat booléen (True ou False).

Comprenons comment utiliser les deux ensemble à l’aide d’un exemple simple. Reportez-vous au code Python suivant pour la même chose.

array = [11, 23, 13, 4, 15, 66, 7, 8, 99, 10]
new_array = list(filter(lambda x: x <= 20, array))
print("Old Array:", array)
print("New Array:", new_array)

Production :

Old Array: [11, 23, 13, 4, 15, 66, 7, 8, 99, 10]
New Array: [11, 13, 4, 15, 7, 8, 10]

Le code Python ci-dessus filtre toutes les valeurs de la liste d’entiers, array, qui est inférieur ou égal à 20.

Chaque valeur de la liste est passée à la fonction lambda. S’il renvoie True, la valeur est ajoutée au résultat ; sinon, non.

Une fois le résultat obtenu dans un itérateur, il est converti en liste à l’aide de la méthode intégrée list(). Enfin, les deux tableaux sont imprimés sur la console.

Exemples

Voici quelques exemples pour comprendre l’utilisation de la méthode filter() et des fonctions lambda ensemble.

Filtrer tous les nombres pairs d’une liste d’entiers

array = [1, 2, 3, 4, 5, 66, 77, 88, 99, 100]
new_array = list(filter(lambda x: x % 2 == 0, array))
print("Old Array:", array)
print("New Array:", new_array)

Production :

Old Array: [1, 2, 3, 4, 5, 66, 77, 88, 99, 100]
New Array: [2, 4, 66, 88, 100]

Filtrer tous les nombres impairs d’une liste d’entiers

array = [1, 2, 3, 4, 5, 66, 77, 88, 99, 100]
new_array = list(filter(lambda x: x % 2 == 1, array))
print("Old Array:", array)
print("New Array:", new_array)

Production :

Old Array: [1, 2, 3, 4, 5, 66, 77, 88, 99, 100]
New Array: [1, 3, 5, 77, 99]

Filtrer toutes les chaînes de longueur 5 à partir d’une liste de chaînes

array = [
    "hello",
    "python",
    "world",
    "walking",
    "sleep",
    "shelter",
    "food",
]
new_array = list(filter(lambda x: len(x) == 5, array))
print("Old Array:", array)
print("New Array:", new_array)

Production :

Old Array: ['hello', 'python', 'world', 'walking', 'sleep', 'shelter', 'food']
New Array: ['hello', 'world', 'sleep']

Filtrez tous les nombres de l’intervalle [10, 20] à partir d’une liste d’entiers

array = [11, 23, 13, 4, 15, 66, 7, 8, 99, 10]
new_array = list(filter(lambda x: 10 <= x <= 20, array))
print("Old Array:", array)
print("New Array:", new_array)

Production :

Old Array: [11, 23, 13, 4, 15, 66, 7, 8, 99, 10]
New Array: [11, 13, 15, 10]
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Article connexe - Python Function

Article connexe - Python Lambda