single
Fonction Filter en Action
Glissez pour afficher le menu
Vous avez déjà vu comment les fonctions d'ordre supérieur comme map permettent d'appliquer une fonction à chaque élément d'une séquence. Une autre fonction d'ordre supérieur essentielle en Python est filter.
La fonction filter est utilisée pour sélectionner des éléments d'une séquence en fonction du fait qu'ils satisfont ou non à une certaine condition. Elle prend deux arguments : une fonction qui retourne True ou False pour chaque élément, et la séquence à filtrer. Le résultat est un itérateur contenant uniquement les éléments pour lesquels la fonction retourne True. Cela rend filter particulièrement utile lorsque vous souhaitez extraire des éléments spécifiques d'une liste, d'un tuple ou d'un autre itérable selon un critère, comme les nombres pairs, les valeurs positives ou les chaînes d'une certaine longueur.
123456def is_even(n): return n % 2 == 0 numbers = [1, 2, 3, 4, 5, 6] even_numbers = list(filter(is_even, numbers)) print(even_numbers)
Ce code utilise la fonction filter() pour créer une nouvelle liste contenant uniquement les entiers pairs à partir d'une collection existante. Il fonctionne en définissant une fonction prédicat, is_even(n). La fonction filter parcourt la liste numbers, applique ce test à chaque élément et écarte ceux qui ne remplissent pas la condition. Enfin, l'objet filter obtenu est reconverti en liste, produisant ainsi le résultat.
Lorsque vous utilisez la fonction filter, elle retourne un objet filter, qui est un itérateur — et non une liste. Si vous affichez directement le résultat de filter, vous verrez une sortie similaire à :
<filter object at 0xfffec885eb30>
Pour accéder aux valeurs filtrées sous forme de liste, il faut convertir l'objet filter à l'aide de list().
Glissez pour commencer à coder
Vous allez utiliser la fonction filter pour sélectionner les nombres positifs d'une liste.
- La fonction
is_positivedoit retournerTruesi l'argument est supérieur à zéro, etFalsesinon. - La fonction
filter_positivedoit utiliser la fonctionfilteravecis_positivepour créer une nouvelle liste contenant uniquement les nombres positifs de la liste d'entrée. - La fonction doit retourner cette nouvelle liste.
- N'oubliez pas de supprimer
pass.
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion