Tableaux – Les listes en Python
1) Manipulation des données d’une liste : ajout, insertion, lecture et suppression de terme
Exemple :
Tableau ne comportant qu’une ligne : la liste Représentation en Python
liste1 = [3, 7, 9]
1er élément 3 7 9 2ème élément
Indice 2
3ème élément Indice 0 Indice 1
On considère la liste suivante :
semaine = [‘lundi’, ‘mercredi’,’jeudi’,’vendredi’,’samedi’]
Les instructions à executer s’effectuent dans l’ordre indiqué et s’accumulent.
Instruction à exécuter
1 On veut ajouter le dimanche à la fin de la liste semaine
On obtient la liste : semaine = [
2 On veut insérer ‘mardi’ entre ‘lundi’ et ‘mercredi’ à la liste semaine
On obtient la liste : semaine = [
3 Quelle instruction faut-il écrire pour obtenir « jeudi ».
EXERCICE 1
Soit la liste L définie par L = [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
1. Ajouter en fin de la liste L le nombre 20
2. Ajouter en début de liste L la liste des entiers compris entre 5 et 15
3. Supprimer de la liste L le premier élément, puis le dernier élément.
4. Supprimer la première occurrence de l’élément 15.
5. À l’aide d’une boucle for, remplacer les éléments de la liste L qui sont multiples de 5 par votre nom.
EXERCICE 2
Script 1 Indiquer ce que contient a
L1 a = [2,4,8,9,10]
L2 a[1] = 3
L3 a[3] = 1
L4 del a[2]
L5 a[2]= 5
Script 2 Indiquer ce que contient a
L1 a = [2,4,8,9,10]
L2 a = [3] + a
L3 a[0] = 1
L4 [Link](3,2)
L5 [Link](7)
NSI – Python Listes - 1-5
p. 1
2) Manipulation des données d’un tableau : ajout, insertion, lecture et suppression de terme
Un tableau à plusieurs lignes et colonnes est appelé matrice. Une matrice peut être modélisée par une liste de
listes en Python.
Exemple :
Matrice Représentation en Python
3 7 9
2ème ligne, 2 13 45
2 est l’élément
1ère colonne
identifié par
4 5 6
matrice1[1][0]
Ce tableau est formé de 3 lignes et 3 colonnes.
C’est une matrice (3,3)
3 7 9 2
2 13 45 5
4 5 6 3
Ce tableau est formé de 3 lignes et 4 colonnes.
C’est une matrice (3,4)
Réponse
1 A quoi correspond : matrice1[1]
2 Quelle instruction faut-il écrire pour lire le nombre 45 dans matrice2 ?
3 Quelle instruction faut-il écrire pour remplacer la valeur 4 de matrice1 en 44 ?
4 Quelle est la valeur de len(matrice1) ?
5 L1 = [3,7,9,2]
L2 = [2,13,45,5]
L3 = [4,5,6,3]
matrice2=[]
Comment créer matrice2, à partir de L1, L2 et L3 ?
6 Supprimer le nombre 13 dans matrice1.
EXERCICE 3
Créer en python matrice59 qui correspond à la table de multiplication des nombres entre 5 et 9.
matrice59 = [[25, 30, 35, 40, 45],
[30, 36, 42, 48, 54],
[35, 42, 49, 56, 63],
[40, 48, 56, 64, 72],
[45, 54, 63, 72, 81]]
NSI – Python Listes - 2-5
p. 2
3) Fonctionnement d’une liste
Contrairement aux autres variables, les listes en Python sont des pointeurs (ou des alias). Cela signifie qu’une
liste est un lien vers une adresse en mémoire ce qui permet ainsi de gérer des objets dont on ne connaît pas la taille.
Ainsi, dans une fonction, toute modification sur une liste existante se répercute dans le programme principal.
Si on écrit L2 = L1, python comprend que les listes L1 et L2 sont les mêmes objets (ils pointent vers la même
adresse), et donc modifier L1 revient à modifier L2 et inversement.
Ainsi pour obtenir une copie indépendante de L1, il faut écrire L2 = L1 [ : ]. Ainsi L1 est une nouvelle liste qui
contient les mêmes éléments que L . Par contre, si L est une matrice, il faut utiliser la méthode deepcopy du module
copy, pour réaliser une copie indépendante de tous les éléments. L1 = deepcopy(L)
Exemple 1
def ilfaitbeau(L):
[Link](5)
L=[1,3,5]
ilfaitbeau(L)
print(L) # Ce programme affiche [1,3,5,5]
Pour bien comprendre le fonctionnement d’une liste, on vous propose d’utiliser l’outil
[Link] , qui permet de visualiser les liens entre les différents objets créés et modifiés par Python
Exemple 2
var1 = 'bleu'
var2 = var1
var1 = 'rouge'
print ('var1 =', var1)
print('var2 =', var2)
L1 = ['bleu','blanc']
L2 = L1
L1[0] = 'rouge'
print ('L1 = ', L1)
print ('L2 = ', L2)
On constate que le mode de fonctionnement de la variable et de la liste est différent. Les listes L1 et L2 « pointent »
vers la même adresse en mémoire. Ainsi, si on modifie un élément de l’une, on modifie un élément de l’autre.
EXERCICE 4
L1 = [« bleu », « blanc »]
L2 = L1 [:]
L2[0] = « rouge » Qu’affiche ce programme ? Le vérifier en allant sur [Link]
print « L1 = », L1
print « L2 = », L2
EXERCICE 5
a = 5
b = [1,2]
c= "Hello" Qu’affiche ce programme ? Le vérifier en allant sur [Link]
L = []
[Link](a)
[Link](b)
[Link](c)
a = 3
b[0]=3
c= "Bonjour"
print(L)
NSI – Python Listes - 3-5
p. 3
4) Création d’une liste
Il existe plusieurs manières de créer une liste. En effet, les listes peuvent être générées :
• en listant tous les termes
• en extension, c’est-à-dire en ajoutant terme après terme
• en compréhension.
Exemple 1 : je veux créer la liste carres qui contient tous les carrés des nombres entiers compris entre 1 et 10.
1) La liste est générée en listant tous les termes
carres = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
2) La liste est générée en extension
carres = []
for i in range(1,11) :
[Link](i**2)
3) La liste est générée en compréhension
carres = [i**2 for i in range(1,11)]
Exemple 2 Je veux créer la liste couples qui contient tous les couples (x, y) tels que : x et y sont différents , x est
compris entre 1 et 3 et y est compris entre 1 et 4.
1) La liste est générée en listant tous les termes
couples = [(1,2),(1,3),(1,4),(2,1),(2,3),(2,4),(3,1),(3,2),(3,4)]
2) La liste est générée en extension
couples = []
for x in range(1,4) :
for y in range (1,5) :
if x !=y :
[Link]((x,y))
3) La liste est générée en compréhension
couples = [(x,y) for x in range(1,4) for y in range(1,5) if x !=y]
EXERCICE 6
A) Créer une liste comprenant tous les multiples de 3 strictement inférieurs à 25, des trois manières décrites en
cours
B) Créer une liste comprenant tous les nombres de 1 à 25 inclus sauf les multiples de 3, des trois manières
décrites en cours.
C) Créer une liste comprenant toutes les combinaisons possibles de 3 dés dont la somme est 10
NSI – Python Listes - 4-5
p. 4
5) Itérer sur les éléments d’un tableau
EXERCICE 7
Compléter la fonction ci-dessous pour quelle donne le maximum d’une liste de nombres
def maxListe(liste) :
max = liste[ ]
taille = len(liste)
for i in range(0, )):
if :
max = liste[i]
return max
On considère la liste : [7, 1, 9, 87, 65.3, 65.2, 3, 90, 34.3, 21]
• Quelle est la valeur maximale des termes de cette liste ?
• En utilisant la fonction que vous avez écrite, donner le maximum de cette liste
A l’aide de la question précédente, écrire une fonction donnant le minimum d’une liste de nombres
def minListe(liste) :
On considère la liste : [7, 1, 9, 87, 65.3, 65.2, 3, 90, 34.3, 21]
• Quelle est la valeur minimale des termes de cette liste ?
• En utilisant la fonction que vous avez écrite, donner le minimum de cette liste
6) Devoir maison : exercice récapitulatif
EXERCICE 8
On considère une fonction polynôme 𝑓 définie par 𝑓(𝑥) = 𝑎𝑛 𝑥 𝑛 + 𝑎𝑛−1 𝑥 𝑛−1 + … + 𝑎𝑘 𝑥 𝑘 + ⋯ + 𝑎1 𝑥 + 𝑎0 .
On souhaite écrire un programme qui calcule l’image d’un réel 𝑥 par cette fonction 𝑓.
Pour cela on créé plusieurs fonctions.
1) Une fonction que l’on nomme lecturePoly() :
En entrée : - demande le degré 𝑛 de la fonction polynôme
- demande la valeur des 𝑎𝑘 en commençant par 𝑎0
En sortie : La fonction retourne la liste des 𝑎𝑘 en commençant par 𝑎0
2) Une fonction que l’on nomme polyImage(poly,x):
En entrée : - poly : valeur des 𝑎𝑘 en commençant par 𝑎0
- x : valeur du réel dont on veut calculer l’image
En sortie : La fonction retourne l’image du réel 𝑥 par cette fonction polynôme.
3) Une fonction main()qui nous permet de tester notre programme.
Cette fonction nous demande la valeur du réel 𝑥.
On testera le programme avec la fonction 𝑓 définie par : 𝑓(𝑥) = 3𝑥 2 − 5𝑥 + 4 et on calculera les images des
nombres -3, -4 et 7 par cette fonction 𝑓.
NSI – Python Listes - 5-5
p. 5