À la fin de cette séquence vous serez capable de :
L'idée d'une compréhension de liste est de rendre le code plus compact pour accomplir des tâches impliquant des listes.
a. Que contient la variable ages
à la fin de l'exécution du programme ci-dessous ?
annees_de_naissance = [1998, 1999, 2000, 1998, 2002, 2003, 2000]
ages = []
for annee in annees_de_naissance:
ages.append(2021 - annee)
On peut remplacer ces trois instructions par une seule :
ages = [2022 - annee for annee in annees_de_naissance]
On dit alors que la liste ages est définie en compréhension.
b. En utilisant la méthode du a., écrire de manière compacte le programme ci-dessous.
M = []
for k in range(10, 101, 10):
M.append(k/5)
Que contient la liste M en fin de programme ?
c. Quelle instruction permet de générer en compréhension la liste des cubes des entiers compris entre 1 et 30 ?
d. Quelle liste l’instruction suivante définit-elle ?
N = [x for x in range(101) if x % 3 == 0]
e. En procédant comme en d., écrire l’instruction permettant de générer la liste des carrés des entiers inférieurs à 100.
f. On donne :
prenoms = ['CLAUDE','aLice','AMinata','rachid', "ben"]
Écrire, à l'aide d'une compréhension de liste, une instruction qui permet de générer, à partir de prenoms
, une liste prenoms_en_majuscules
avec tous les prénoms écrits en capital.
Les compréhensions de liste offrent un moyen concis de créer des listes.
Un tableau à plusieurs lignes et plusieurs colonnes est appelé une matrice.
Une matrice peut être représentée en Python par une liste de listes.
Exemples :
Matrice | Modélisation en Python | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ce tableau est formé de 3 lignes et 3 colonnes. On dit que c’est une matrice carrée d’ordre 3. |
|||||||||||||
Ce tableau est formé de 3 lignes et 4 colonnes : On dit que c’est une matrice (3, 4). |
len(matrice2)
a. Quelle est la valeur renvoyée par chacune des instructions suivantes ?
matrice1[1]
matrice1[0][2]
b. Quelle instruction permet de récupérer la valeur 4 de matrice2 ?
c. Écrire, à l’aide d’une boucle for un code, en Python, qui permet d’afficher les éléments de la deuxième ligne de matrice2 ?
d. Écrire, à l’aide d’une boucle for, un algorithme puis un code, en Python, qui permet d’afficher les éléments de matrice2. Ecrire, enfin ce code en utilisant la compréhension de liste.
a = [1, 2]
b = a
c = a[:] #shallow copy
a[0] = 20
print(a)
print(b) # effet de bord
print(c)
[20, 2] [20, 2] [1, 2]
a = [1, ["a", "b"], 2]
b = a
c = a[:] #shallow copy
a[1][0] = "nsi"
print(a)
print(b) # effet de bord
print(c)
[1, ['nsi', 'b'], 2] [1, ['nsi', 'b'], 2] [1, ['nsi', 'b'], 2]
import copy
a = [1, ["a", "b"], 2]
b = a
c = a[:] #shallow copy
d = copy.deepcopy(a)
a[1][0] = "spam"
print(a)
print(b) # effet de bord
print(c)
print(d)
[1, ['spam', 'b'], 2] [1, ['spam', 'b'], 2] [1, ['spam', 'b'], 2] [1, ['a', 'b'], 2]
t = ((1, 2, 3), (10, 15), (4, 7, 21, 45))
t2 = ((8, 9), 7, ["a", "b", "c"], 3, 1)
lst = [10, (3, 2, 5), 7]
Quelle instruction permet de récupérer la valeur 3 de t ?