Filtre par longueur⚓︎
On dispose d'une liste de prénoms, et on s'intéresse à ceux d'une longueur donnée.
Compléter la fonction filtre_par_longueur
afin qu'elle renvoie la liste des prénoms de la longueur souhaitée.
Cette fonction :
- prend deux arguments :
liste_prenoms
, une liste de prénoms etlongueur
, un entier naturel ; - renvoie la liste des prénoms de
liste_prenoms
dont la longueur est égale àlongueur
.
On prendra soin de renvoyer les prénoms dans leur ordre d'apparition dans la liste initiale.
Exemples
>>> filtre_par_longueur(['Anne', 'Francky', 'Charles', 'Léa', 'Nicolas'], 7)
['Francky', 'Charles', 'Nicolas']
>>> filtre_par_longueur(['Anne', 'Francky', 'Charles', 'Léa', 'Nicolas'], 3)
['Léa']
>>> filtre_par_longueur(['Anne', 'Francky', 'Charles', 'Léa', 'Nicolas'], 10)
[]
def filtrepy-undparpy-undlongueur(listepy-undprenoms, ...):bksl-nl resultat = []bksl-nl for prenom in ...:bksl-nl if ... == longueur:bksl-nl resultat.append(...)bksl-nl return ...bksl-nlbksl-nlbksl-nl# Testsbksl-nlprenoms = ['Anne', 'Francky', 'Charles', 'Léa', 'Nicolas']bksl-nlassert filtrepy-undparpy-undlongueur(prenoms, 7) == ['Francky', 'Charles', 'Nicolas']bksl-nlassert filtrepy-undparpy-undlongueur(prenoms, 3) == ['Léa']bksl-nlassert filtrepy-undparpy-undlongueur(prenoms, 10) == []bksl-nlbksl-nldef filtrepy-undparpy-undlongueur(listepy-undprenoms, longueur):bksl-nl resultat = []bksl-nl for prenom in listepy-undprenoms:bksl-nl if len(prenom) == longueur:bksl-nl resultat.append(prenom)bksl-nl return resultatbksl-nlbksl-nlbksl-nl# Testsbksl-nlprenoms = ["Anne", "Francky", "Charles", "Léa", "Nicolas"]bksl-nlassert filtrepy-undparpy-undlongueur(prenoms, 7) == ["Francky", "Charles", "Nicolas"]bksl-nlassert filtrepy-undparpy-undlongueur(prenoms, 3) == ["Léa"]bksl-nlassert filtrepy-undparpy-undlongueur(prenoms, 10) == []bksl-nlbksl-nl
A
On pourrait aussi utiliser une liste en compréhension :
def filtre_par_longueur(liste_prenoms, longueur):
return [prenom for prenom in liste_prenoms if len(prenom) == longueur]
Il est aussi possible d'utiliser un style fonctionnel
def filtre_par_longueur(liste_prenoms, longueur):
def valide(prenom):
return len(prenom) == longueur
return list(filter(valide, liste_prenoms))
Z