Pour modifier les éléments d'une liste a, on utilise la syntaxea[position] = nouvelle_valeur.
a = [5, 3 ,2, 7]
print(a) # affiche [5, 3 ,2, 7]
# on remplace l'élément d'indice 2 par le nombre 8
a[2] = 8
print(a) # affiche [5, 3 ,8, 7]
Il est aussi possible, lorsque l'on modifie les valeurs d'une liste, d'utiliser les valeurs déjà existantes de la liste.
a = [5, 3 ,2, 7]
print(a) # affiche [5, 3, 2, 7]
a[1] = a[0] + a [2]
print(a) # affiche [5, 7, 2, 7]
Modification des éléments d'une liste par un parcours
Pour parcourir les éléments d'une liste et les remplacer un à un, il est également possible d'utiliser une boucle for. On rappelle par ailleurs que len(a) renvoie la longueur de la liste a.
# On crée une liste de taille 5 dont toutes les valeurs valent 0
a = [0] * 5
# Pour chaque entier i compris entre 0 et 4 (la longueur de la liste - 1),
# on remplace l'élément d'indice i de la liste par i au carré
for i in range(len(a)):
a[i] = i ** 2
print(a) # affiche [0, 1, 4, 9, 16]
Remarque
La liste de l'exemple précédent peut également être générée par compréhension comme suit.
a = [i ** 2 for i in range(5)]
Exercices
Exercice 1
Sans exécuter le programme ou afficher les valeurs, déterminer les valeurs stockées dans les variables b, c et d du programme ci-dessous.
a = [[1, 2, 4], [3, 5, 7], [0, 9, 6, 8]]
b = a[1]
c = a[2][3]
d = a[0][-1]
Exercice 2
On considère la liste a ci-dessous. Sans exécuter le programme, déterminer les éléments de la liste a à l'issue de l'exécution de ce programme.
a = [[1, 2, 4], [3, 5, 7], [0, 9, 6, 8]]
a[0][1] = 11
a[1][2] = a [1][0] * a[1][1]
for i in range(4):
a[2][i] = a [2][i] * 3
Triangle de Pascal
Rappel du principe et modélisation
Le triangle de Pascal est une présentation des coefficients binomiaux
(kn)
sous la forme d'un tableau triangulaire : le nombre inscrit en
k
-ième position sur la
n
-ième ligne vaut ainsi
(k−1n−1)
.
La construction de ce triangle repose sur la relation de Pascal : pour tout entier naturel non nul
n
et tout entier naturel
k
tel que
0<k<n
Ainsi, chaque nombre dans le triangle de Pascal est obtenu en réalisant la somme des deux nombres au-dessus de lui.
Dans ce TP, nous représenterons le triangle de Pascal sous la forme d'une liste Python, chaque élément de cette liste étant elle-même une liste correspondant à une ligne de ce triangle.
Par exemple, le triangle de Pascal à 4 étages sera représenté par la liste suivante :
a = [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1]]
Remarque
Ainsi, a[n][k] contiendra la valeur de
(kn)
.
Pour mieux visualiser le triangle, on peut par ailleurs utiliser la fonction suivante.
def afficher(a):
for ligne in a :
print('\t'.join([str(x) for x in ligne]))afficher(a)
On note t la variable qui contient la taille du triangle de Pascal que l'on souhaite calculer.
Construction d'un triangle vide
Dans un premier temps, on va créer une fonction qui renvoie une liste de taille
t
. Chaque élément de cette liste sera une liste uniquement constituée de
0
: la première liste contiendra un
0
, la deuxième liste en contiendra deux, et ainsi de suite.
Compléter la fonction suivante pour qu'elle renvoie la liste correspondant à un triangle où tous les coefficients valent
0
.
def initialiser_triangle(t):
triangle = [0] * t
for i in range(t) :
triangle[i] = [0] * (...)
return triangle
Complétion du triangle
Exercice 1
Soit
n
un entier naturel. Rappeler les valeurs de
(0n)
et de
(nn)
.
Exercice 2
Compléter la fonction ci-dessous pour générer le triangle de Pascal à t étages.
def pascal(t):
triangle = initialiser_triangle(t)
# on place les valeurs de (0 parmi i) et de (i parmi i)
for i in range(t):
triangle[i][0] = ...
triangle[i][i] = ...
# on complète le tableau en utilisant la relation de Pascal