← Retour au cours Tableaux 2D

Construction incorrecte

à proscrire

Une seule ligne partagée entre toutes les lignes de la matrice.

ligne = [0]*3
Une ligne créée
matrice = [ligne]*3
3 alias vers la même ligne
matrice[0][0] = 1
Modifie toutes les lignes
Correct
Compréhension imbriquée

Matrice identité

diagonale

Carré taille×taille avec des 1 sur la diagonale.

[[0]*n for _ in range(n)]
Lignes indépendantes
matrice[i][i] = 1
Diagonale
Vérification
1 si i==j, sinon 0

💻 Exemples de code

Piège : [ligne] * n

piege_lignes.py
# INCORRECT
ligne_vide = [0] * 3
matrice_piege = [ligne_vide] * 3
matrice_piege[0][0] = 1
print(matrice_piege)  # [[1,0,0], [1,0,0], [1,0,0]]

# CORRECT
matrice_ok = [[0] * 3 for _ in range(3)]
matrice_ok[0][0] = 1
print(matrice_ok)     # [[1,0,0], [0,0,0], [0,0,0]]

Matrice identité

identite.py
def matrice_identite(taille):
    matrice = [[0] * taille for _ in range(taille)]
    for indice in range(taille):
        matrice[indice][indice] = 1
    return matrice

print(matrice_identite(3))

📋 Aide-mémoire

Toujours créer des lignes distinctes dans une compréhension.