Tableaux 2D et Matrices

1. Introduction

Un tableau 2D (ou matrice) est une structure de données qui permet de représenter des données disposées en lignes et colonnes. C’est très utile pour modéliser :

En Python, on représente un tableau 2D par une liste de listes.


2. Déclaration et initialisation

Pour créer un tableau 2D avec 3 lignes et 3 colonnes initialisées à 0, la bonne méthode est la suivante :

tab = [[0] * 3 for _ in range(3)]

Pourquoi cette méthode ?


Erreur fréquente à éviter

On pourrait penser faire :

tab = [[0]*3]*3

Mais cela crée trois références vers la même liste. Donc, modifier un élément dans une ligne modifie aussi les autres lignes ! Ce n’est pas ce que l’on veut.

Exemple de problème :

tab = [[0]*3]*3
tab[0][0] = 1
print(tab)

Affichera :

[[1, 0, 0],
 [1, 0, 0],
 [1, 0, 0]]

Ici, la modification s’est propagée partout car toutes les lignes pointent vers la même liste.


3. Accès aux éléments

Chaque élément s’accède avec deux indices : tab[i][j], où :

Exemple :

tab[1][2] = 5  # modifie l'élément à la ligne 1, colonne 2

4. Parcours d’un tableau 2D

Pour traiter ou afficher tous les éléments, on utilise une double boucle imbriquée :

for i in range(len(tab)):         # parcours des lignes
    for j in range(len(tab[0])):  # parcours des colonnes
        print(tab[i][j], end=' ')
    print()  # saut de ligne après chaque ligne

Cette double boucle permet de parcourir toutes les cases de la matrice, ligne par ligne.


5. Modifications et manipulations

Exemple : incrémenter toutes les cases

for i in range(len(tab)):
    for j in range(len(tab[0])):
        tab[i][j] += 1

Exemple : remplir une diagonale

n = len(tab)
for i in range(n):
    tab[i][i] = 1

6. Applications types


7. Autres conseils importants


8. Exemple complet : création et affichage

# Création d'une matrice 3x3 remplie de 0
tab = [[0]*3 for _ in range(3)]

# Modification d'un élément
tab[0][1] = 7

# Affichage
for i in range(len(tab)):
    for j in range(len(tab[0])):
        print(tab[i][j], end=' ')
    print()

Affiche :

0 7 0
0 0 0
0 0 0

9. En résumé