Contenu du cours
Techniques Python Intermédiaires
Techniques Python Intermédiaires
Fonctions Intégrées
Voici deux autres exemples démontrant l'utilisation des fonctions lambda avec les fonctions filter()
et sorted()
en Python.
Alternativement, vous pouvez passer une fonction personnalisée plus complexe au lieu d'une lambda à ces fonctions d'ordre supérieur.
filter()
La fonction filter()
est utilisée pour créer un itérateur à partir des éléments d'un itérable pour lesquels une fonction retourne vrai. Voici un exemple utilisant filter() avec une fonction lambda pour filtrer les nombres impairs d'une liste :
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Using a lambda function to filter out odd numbers even_numbers = filter(lambda x: x % 2 == 0, numbers) # Convert the filter object to a list even_numbers_list = list(even_numbers) print(even_numbers_list)
Dans cet exemple, la fonction lambda lambda x: x % 2 == 0
vérifie si un nombre est pair. La fonction filter()
applique cette lambda à chaque élément de la liste de nombres et retourne un itérateur de nombres pairs.
sorted()
La fonction sorted()
renvoie une nouvelle liste triée à partir des éléments de n'importe quel itérable.
iterable
est la séquence à trier (liste, dict, tuple, etc);key
est une fonction à exécuter pour décider de l'ordre;reverse
est un booléen. False est un ordre croissant, et True est décroissant. La valeur par défaut est False.
Voici un exemple utilisant sorted()
avec une fonction lambda pour trier une liste de tuples en fonction du deuxième élément de chaque tuple :
tuples = [(1, 'banana'), (2, 'apple'), (3, 'orange')] # Using a lambda function to sort by the second element of each tuple sorted_tuples = sorted(tuples, key=lambda x: x[1]) print(sorted_tuples)
Dans cet exemple, la fonction lambda lambda x: x[1]
renvoie le deuxième élément de chaque tuple. La fonction sorted()
trie ensuite la liste de tuples en fonction de ces deuxièmes éléments, ce qui donne une liste triée alphabétiquement par les noms des fruits.
Swipe to start coding
Considérons une liste de dictionnaires représentant des livres, et vous souhaitez filtrer les livres qui ont un certain nombre de pages.
- Définissez la liste des livres.
books
est une liste de dictionnaires. Chaque dictionnaire représente un livre avec deux clés : "title" et "pages". - Créez la fonction personnalisée
has_many_pages
qui accepte les argumentsbook
etmin_pages
. - Utilisez
filter()
avec la fonction personnalisée. - Convertissez l'objet filter en une liste, stockez-le dans la variable
filtered_books_list
, et imprimez-le.
Solution
Merci pour vos commentaires !
Fonctions Intégrées
Voici deux autres exemples démontrant l'utilisation des fonctions lambda avec les fonctions filter()
et sorted()
en Python.
Alternativement, vous pouvez passer une fonction personnalisée plus complexe au lieu d'une lambda à ces fonctions d'ordre supérieur.
filter()
La fonction filter()
est utilisée pour créer un itérateur à partir des éléments d'un itérable pour lesquels une fonction retourne vrai. Voici un exemple utilisant filter() avec une fonction lambda pour filtrer les nombres impairs d'une liste :
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Using a lambda function to filter out odd numbers even_numbers = filter(lambda x: x % 2 == 0, numbers) # Convert the filter object to a list even_numbers_list = list(even_numbers) print(even_numbers_list)
Dans cet exemple, la fonction lambda lambda x: x % 2 == 0
vérifie si un nombre est pair. La fonction filter()
applique cette lambda à chaque élément de la liste de nombres et retourne un itérateur de nombres pairs.
sorted()
La fonction sorted()
renvoie une nouvelle liste triée à partir des éléments de n'importe quel itérable.
iterable
est la séquence à trier (liste, dict, tuple, etc);key
est une fonction à exécuter pour décider de l'ordre;reverse
est un booléen. False est un ordre croissant, et True est décroissant. La valeur par défaut est False.
Voici un exemple utilisant sorted()
avec une fonction lambda pour trier une liste de tuples en fonction du deuxième élément de chaque tuple :
tuples = [(1, 'banana'), (2, 'apple'), (3, 'orange')] # Using a lambda function to sort by the second element of each tuple sorted_tuples = sorted(tuples, key=lambda x: x[1]) print(sorted_tuples)
Dans cet exemple, la fonction lambda lambda x: x[1]
renvoie le deuxième élément de chaque tuple. La fonction sorted()
trie ensuite la liste de tuples en fonction de ces deuxièmes éléments, ce qui donne une liste triée alphabétiquement par les noms des fruits.
Swipe to start coding
Considérons une liste de dictionnaires représentant des livres, et vous souhaitez filtrer les livres qui ont un certain nombre de pages.
- Définissez la liste des livres.
books
est une liste de dictionnaires. Chaque dictionnaire représente un livre avec deux clés : "title" et "pages". - Créez la fonction personnalisée
has_many_pages
qui accepte les argumentsbook
etmin_pages
. - Utilisez
filter()
avec la fonction personnalisée. - Convertissez l'objet filter en une liste, stockez-le dans la variable
filtered_books_list
, et imprimez-le.
Solution
Merci pour vos commentaires !