Introduction aux matrices avec Python
Si vous savez ce qu’est une liste avec Python, l’étape suivante consiste à construire des tableaux en deux dimensions, c’est-à-dire les matrices.
Ce sont, ni plus ni moins, des listes de listes.
Syntaxe
Rappelons la syntaxe d’une liste. On utilise des crochets (contre des accolades pour un ensemble et des parenthèses pour un tuple).
liste = [1,2,3]
Tableau en deux dimensions :
tab = [[1,2,3], [4,5,6], [7,8,9]]
C’est l'écriture pythonesque du tableau suivant :
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
Vous comprenez d’ailleurs qu’il est possible de réaliser des tableaux en trois, quatre dimensions ou plus.
Il est aussi possible de réaliser des tableaux qui ne sont pas des matrices, avec par exemple un nombre de colonnes différent selon les lignes.
Indexation
On accède à une valeur du tableau en précisant d’abord l’indice de la ligne puis celui de la colonne. N’oubliez pas que Python commence à compter à partir de zéro.
>>> print (tab [2][1])
8
On modifie facilement une valeur d’un tableau. Par exemple, pour remplacer 7 par 10 dans notre matrice.
>>> tab [2] [0] = 10
Construction par itérations
Une possibilité de construire l’architecture d’un tableau (qui ne contient que des zéros) est d’utiliser des boucles imbriquées.
Exemple :
# Création dynamique d'un tableau 2D de 3 lignes et 4 colonnes rempli de 0
lignes = 3
colonnes = 4
matrice = [[0 for i in range(colonnes)] for j in range(lignes)]
print(matrice)
On obtient...
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
Pour un affichage matriciel, remplaçons la dernière ligne par le script suivant :
for ligne in matrice:
for valeur in ligne:
print(valeur, end=' ')
print()
On obtient ceci :
0000
0000
0000
Exemple de remplissage manuel
Le programme suivant permet de déterminer les dimensions d’un tableau puis de le remplir manuellement et enfin de l’afficher.
# Demande des dimensions du tableau
>>> lignes = int(input("Entrez le nombre de lignes : "))
Entrez le nombre de lignes : 2
>>> colonnes = int(input("Entrez le nombre de colonnes : "))
Entrez le nombre de colonnes : 3
# Création du tableau vide
>>> matrice = []
# Remplissage du tableau avec des entrées utilisateur
>>> for i in range(lignes):
... ligne = []
... for j in range(colonnes):
... valeur = int(input(f"Entrez l'élément [{i}][{j}] : "))
... ligne.append(valeur)
... matrice.append(ligne)
...
Entrez l'élément [0][0] : 1
Entrez l'élément [0][1] : 2
Entrez l'élément [0][2] : 3
Entrez l'élément [1][0] : 4
Entrez l'élément [1][1] : 5
Entrez l'élément [1][2] : 6
# Affichage du tableau
>>> for ligne in matrice:
... print(" ".join(map(str, ligne)))
...
1 2 3
4 5 6