9.5 Compréhensions de listes
Objectifs d'apprentissage
À la fin de cette section, vous devriez être en mesure de :
- Identifier les différentes composantes d'une instruction de compréhension de liste.
- Mettre en œuvre le filtrage à l'aide d'une compréhension de liste.
Compréhensions de listes
Une compréhension de liste (list comprehension) est une instruction Python permettant de créer de manière concise une nouvelle liste à l'aide d'un motif.
La forme générale d'une instruction de compréhension de liste est présentée ci-dessous.
list_name = [expression for loop_variable in iterable]
list_name fait référence au nom de la nouvelle liste, qui peut être quelconque, et for est le mot-clé de la boucle for. Une expression définit ce qui fera partie de la nouvelle liste. loop_variable est un itérateur, et iterable est un objet qui peut être itéré, tel qu'une liste ou une chaîne de caractères.
Exemple 9.5
Créer une nouvelle liste avec une compréhension de liste
La compréhension de liste présentée ci-dessous dans le deuxième bloc de code produit le même résultat que la boucle for classique présentée dans le premier bloc. La liste obtenue est [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] dans les deux cas.
Création d'une liste de carrés à l'aide d'une boucle for.
# Create an empty List.
squares_list = []
# Add items to a list, as squares of numbers starting at 0 and ending at 9.
for i in range(10):
squares_list.append(i*i)
Création d'une liste de carrés à l'aide d'une compréhension de liste.
square_list = [i*i for i in range(10)]
L'expression i*i est appliquée pour chaque valeur de la variable loop_variable i.
Exemple 9.6
Un poème du Dr. Seuss
Une compréhension de liste peut être utilisée pour créer une liste à partir d'une autre liste. À la ligne 6, la boucle for parcourt la liste poem_lines.
1 | # Create a list of words |
2 | words_list = ["one", "two", "red", "blue"] |
3 | |
4 | # Use a list comprehension to create a new list called poem_lines |
5 | # Inserting the word "fish" attached to each word in words_list |
6 | poem_lines = [w + " fish" for w in words_list] |
7 | for line in poem_lines: |
8 | print(line) |
La sortie du code ci-dessus est :
one fish
two fish
red fish
blue fish
Concepts en pratique
Compréhensions de listes
Filtrage à l'aide de compréhensions de listes
Les compréhensions de listes peuvent être utilisées pour filtrer des éléments d'une liste donnée. Une condition est ajoutée à la compréhension de liste.
list_name = [expression for loop_variable in container if condition]
Dans une compréhension de liste avec filtrage, un élément n'est ajouté à list_name que si la condition est remplie.
Concepts en pratique
Filtrage à l'aide de compréhensions de listes
Pour chaque extrait de code utilisant une compréhension de liste, sélectionnez la liste résultante correcte dans new_list.
À vous d'essayer
Sélectionner des mots de cinq lettres
Écrivez un programme qui crée une liste contenant uniquement les mots de cinq lettres de la liste donnée et affiche la nouvelle liste.
À vous d'essayer
Livres commençant par "A"
Écrivez un programme qui sélectionne les mots qui commencent par un « A » dans la liste donnée. Assurez-vous que la nouvelle liste soit ensuite triée selon l'ordre lexicographique. Enfin, affichez la nouvelle liste triée.