Tuto Python : les listes à deux dimensions et multi-dimensions

Table des matières

Introduction

  1. Liste 2D
  2. L'application des listes 2d est en Python
  3. Comprendre les listes 2d en python
  4. Code Python pour une liste 2D
  5. Listes multidimensionnelles
  6. Accès à une liste multidimensionnelle
  7. Accès à l'aide de la boucle
  8. Accès à l'aide de crochets
  9. Création d'une liste multidimensionnelle avec des zéros
  10. Méthodes sur les listes multidimensionnelles
  11. Exercice

4.1.  Exercice 1

4.2.  Exercice 2

  1. Solution

5.1.  Exercice 1

5.2.  Exercice 2

Conclusion

Introduction :

La liste est l'un des types de données les plus utiles en python. Nous pouvons ajouter des valeurs de tous les types comme des entiers, des chaînes de caractères, des flotteurs dans une seule liste. L'initialisation de la liste peut être faite en utilisant des crochets [].  Voici un exemple de liste 1d et de liste 2d. Comme nous ne pouvons pas utiliser la liste 1d dans tous les cas d'utilisation, la liste 2d en python est utilisée. Aussi connu sous le nom de liste à l'intérieur d'une liste ou de liste imbriquée. Le nombre d'éléments dans une liste 2d sera égal au nombre de lignes * nombre de colonnes.

1. Liste 2D :

Les listes en 2 dimensions sont une structure de données extrêmement importante dans la programmation Python, avec de nombreuses applications. Elles peuvent être très déroutantes au départ, et vous devez vous assurer que vous êtes confiant et compétent en matière de tableaux à une dimension avant de les apprendre.

Une liste 2d ressemble à ceci :

Syntaxe :


list1_d=['a', 'b', 50, 10.1]
list_2d=[ [1,2,3,4] , [5,4,6,7] , [9,8,9,10] ]
print(list1_d)
print(list_2d)

Résultat d’exécution :

1. L'application des listes 2d est en Python :

Représentation des grilles, par exemple des pixels

Planches de jeu

Matrices pour les applications mathématiques

Représentation des données sous forme de tableaux, comme dans un tableur

Stockage et accès aux données issues d'expériences scientifiques

Accès aux éléments du DOM pour le développement du web

Comprendre les cadres de données des pandas

Ouvrir la voie à des listes de plus grande dimension

2. Comprendre les listes 2d en python :

Afin de ne pas se perdre lors de l'utilisation de tableaux en 2D en Python, il faut fixer son orientation, un peu comme lorsqu'on lit une carte. Vous devez toujours savoir clairement si un index particulier se réfère à une ligne ou à une colonne.

Regardez cette image :

Il vous donne les coordonnées des éléments dans une grille en termes de numéro de ligne suivi d'un numéro de colonne. Il est important de noter que l'ordre de ces coordonnées en termes de vertical et d'horizontal est différent de celui auquel vous êtes habitué des coordonnées x,y en mathématiques. Ces listes 2D existent en mathématiques et sont appelées matrices, mais ce n'est pas un sujet que vous êtes susceptible de couvrir à moins que vous n'étudiiez les mathématiques de niveau A.

3. Code Python pour une liste 2D :

Le code qui produit la grille dans l'image est ci-dessous.

Syntaxe :


grille = []
for line in range(5):
nvline = []
for col in range(5):
nvline.append((line, col))
grille.append(nvline)
for line in grille:
print(line)

Résultat d’exécution :

Étudiez bien ce code et assurez-vous de bien le comprendre. Il utilise des boucles imbriquées, que vous devrez également connaître.

En général, les sujets de la programmation Python et de l'informatique se complètent très souvent. Essayer de comprendre un sujet lorsque votre compréhension des sujets d'appui nécessaires est faible est généralement une mauvaise idée.

Pour comprendre les listes 2D en Python, vous devez être à l'aise avec

  • ?Listes simples à une dimension
  • ?Accès aux éléments d'une liste 1D à l'aide d'un index. Par exemple, ma_liste[3].
  • ?Emboîté pour les boucles

Cet exemple utilise des tuples pour stocker les "coordonnées", mais ce n'est pas toujours une obligation

  1. Accès aux éléments d'une liste 2D en Python :

Pour accéder à un élément de la grille dans le code ci-dessus, vous avez besoin d'un double index, qui ressemble à ceci :

print(grille[3][1])

Notez que print (grille [3,1]) entraînera une erreur de frappe, même si cela peut sembler logique.

Syntaxe :


matrice = []
for line in range(1, 5):
nvline = []
for col in range(1,5):
nvline.append(line * col)
matrice.append(nvline)
for line in matrice:
for el in line:
print(el, end ="\t")
print()

Résultat d’exécution :

Dans le prolongement de ce qui précède, nous pouvons définir des tableaux bidimensionnels de la manière suivante.

Première méthode pour créer un tableau en 2D :

Syntaxe :


rows, cols = (5, 5)
tab = [[2]*cols]*rows
print(tab)

Résultat d’exécution :

Deuxième méthode pour créer un tableau :

Syntaxe :


rows, cols = (3, 4)
tab = [[2 for i in range(cols)] for j in range(rows)]
print(tab)

Résultat d’exécution :

Une autre méthode pour créer un tableau 2D :

Syntaxe :


rows, cols = (2, 3)
tab=[]
for i in range(cols):
col = []
for j in range(rows):
col.append(2)
tab.append(col)
print(tab)

Résultat d’exécution :

Les deux méthodes donnent apparemment le même résultat qu'aujourd'hui. Changeons un des éléments du tableau de la méthode 2a et de la méthode 2b.

3. Listes multidimensionnelles :

Il peut y avoir plus d'une dimension supplémentaire aux listes en Python. En gardant à l'esprit qu'une liste peut contenir d'autres listes, ce principe de base peut être appliqué encore et encore. Les listes multidimensionnelles sont les listes à l'intérieur des listes. En général, un dictionnaire sera le meilleur choix plutôt qu'une liste multidimensionnelle en Python.

1. Accès à une liste multidimensionnelle :

Syntaxe :


a = [[1, 4, 6, 8, 10], [3, 6, 9, 12, 15], [4, 8, 12, 16, 20]]
print(a)

Résultat d’exécution :

2. Accès à l'aide de la boucle :

Syntaxe :


a = [[2, 4, 6], [ 12, 15], [ 16, 20]]
for liste in a:
print(liste)

Résultat d’exécution :

3. Accès à l'aide de crochets :

Syntaxe :


a = [ [ 4, 6, 8 ],
[ 3, 5, 7 ],
[ 6, 4, 2 ],
[ 5, 3, 1 ] ]
for i in range(len(a)) :
for j in range(len(a[i])) :
print(a[i][j], end=" ")
print()

Résultat d’exécution :

4. Création d'une liste multidimensionnelle avec des zéros :

Syntaxe :


m = 3
n = 2
a = [[0 for x in range(n)] for x in range(m)]
print(a)

Résultat d’exécution :

5. Méthodes sur les listes multidimensionnelles :

append() : Ajoute un élément à la fin de la liste.

Syntaxe :


a = [[ 8, 10], [3, 6, 15], [4, 8, 20]]
a.append([5, 10, 25])
print(a)

Résultat d’exécution :

extend() : Ajoute les éléments d'une liste (ou tout autre élément itérable), à la fin de la liste courante.

Syntaxe :


a = [[ 8, 10], [ 12, 15], [ 16, 20]]
a[0].extend([ 16, 18])
print(a)

Résultat d’exécution :

reverse() : Inverse l'ordre de la liste.

Syntaxe :


a = [[2, 4, 6], [3, 6, 9, 12], [4, 8, 12]]
a.reverse()
print(a)

Résultat d’exécution :

4. Exercice :

4.1. Exercice 1 :

Crée une liste cinéma avec 5 ranges et 5 colonnes qui contient des 0

Affichez la liste

4.2. Exercice 2 :

Créer un tableau 3D (liste multidimensionnel) avec l’éléments zéro dans chaque case.

Affichez la liste.

5. Solution

5.1. Exercice 1 :

Syntaxe :


cinema = []
for j in range(5):
col = []
for i in range(5):
col.append(0)
cinema.append(col)
for col in cinema:
for elem in column:
print(elem, end = " ")
print()

Résultats de l’affichage :

5.2. Exercice 2 :

Syntaxe :


listes = []
for k in range(5):
liste = []
for j in range(5):
col = []
for i in range(5):
col.append(0)
liste.append(col)
listes.append(liste)
for col in liste:
for elem in col:
print(elem, end = " ")
print()

Résultats de l’affichage :

Conclusion

Si vous allez conceptualiser une liste 2d comme un tableau, il existe une convention largement utilisée selon laquelle le premier indice représente la ligne et le second indice représente la colonne. Je conseille vivement aux étudiants de s'en tenir à cette convention, même si elle peut sembler peu familière au premier abord. Cela facilitera le raisonnement sur vos données plus tard dans vos études.

Article publié le 14 Mars 2021par Mouhtat Bilal