Les listes en compréhension sont des listes créées en une ligne à l'aide de la syntaxe suivante :
nouvelle_liste=[EXPRforVARinITERABLE]
où EXPR est une expression contenant, ou pas, la variable de boucle VAR et ITERABLE est un objet Python itérable tel qu'une autre liste ou un appel à la fonction range.
La liste obtenue est équivalente à celle obtenue en faisant :
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : ∞/∞
Ce n'est pas parce qu'on a vérifié que les deux fonctions donnaient le même résultat pour quelques valeurs qu'on a la preuve qu'elles sont équivalentes.
Exercice 13 : Liste en compréhension
Compléter le code de la fonction fonction2 qui prend en paramètre une liste d'entiers valeurs et qui renvoie le même résultat que fonction1(valeurs). Les fonctions doivent être équivalentes.
Il n'y a pas d'exemples, ni de tests de publics. À vous de trouver comment tester votre fonction.
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : ∞/∞
Ce n'est pas parce qu'on a vérifié que les deux fonctions donnaient le même résultat pour quelques valeurs qu'on a la preuve qu'elles sont équivalentes.
Exercice 14 : Filtrage d'une liste
Compléter le code de la fonction triple_dans_intervalle1 qui prend 3 paramètres et qui renvoie le même résultat que triple_dans_intervalle2 avec les mêmes paramètres. Les fonctions doivent être équivalentes.
Il n'y a pas d'exemples, ni de tests de publics. À vous de trouver comment tester votre fonction.
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Pour les exercices suivants, vous pouvez, ou non, utiliser des listes en compréhension.
Exercice 15 : que_les_negatifs(valeurs)
Compléter le code de la fonction que_les_negatifs qui prend en paramètres une liste d'entiers valeurs et qui renvoie une nouvelle liste composée uniquement des éléments de valeurs strictement négatifs. L'ordre des éléments gardé est le même dans les deux listes.
Compléter le code de la fonction que_croissant qui prend en paramètre une liste non vide d'entiers valeurs et renvoie la plus grande sous-liste d'éléments strictement croissants et commençant par le premier élément de valeurs.
Exemples
>>> que_croissant([1,2,5,3,10,-1])# 3 et -1 inférieur au précédent[1, 2, 5, 10]>>> que_croissant([11,2,5,3,10,-1])# aucun n'est supérieur à 11[11]>>> que_croissant([11,2,125,3,15,120])[11, 125]
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Des escrocs ont réussi à voler un numéro de carte bancaire. Ne sachant pas quelle somme est disponible sur le compte, ils passent un maximum de commandes sur des sites Internet sans même attendre la confirmation de la Banque. Cette dernière traite les transactions les unes après les autres et bloque toutes les suivantes dès que la limite disponible est dépassée. La transaction faisant dépasser la limite n'est pas validée.
Compléter le code de la fonction validees qui prend en paramètres une liste d'entiers commandes, correspondant à la liste des prix, ainsi qu'un entier limite et qui renvoie la liste des commandes validées jusqu'au dépassement de la limite. Si la limite n'est pas atteinte, toutes les commandes sont validées.
Exemples
>>> validees([20,30,60,40,10],130)# 20+30+60=110 20+30+60+40=150[20, 30, 60]>>> validees([20,30,60,40,10],1000)# 20+30+40+10<1000[20, 30, 60, 40, 10]>>> validees([20,30,60,40,10],10)# La première commande bloque la carte[]
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
# Tests
(insensible à la casse)(Ctrl+I)