Le piège de la création, vu de près
Exercice · informatique (tronc commun des prépas scientifiques), chapitre 8 — Matrices de pixels et images
Énoncé
Prédire le résultat d'affichage du script suivant et proposer une correction :
grille = [[0] * 3] * 2
grille[0][1] = 7
print(grille)Corrigé
Le programme affiche [[0, 7, 0], [0, 7, 0]]. L'opérateur [[0] <em> 3] </em> 2 crée une unique liste de 3 éléments et duplique sa référence dans les deux lignes de la liste englobante. Modifier le deuxième élément de la ligne 0 modifie ainsi par effet de bord le deuxième élément de la ligne 1. Pour corriger cela, il faut forcer l'allocation de listes indépendantes en mémoire en écrivant :
grille = [[0] * 3 for _ in range(2)]Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.