Guide pratique pour manipuler les lignes et colonnes dans une liste bidimensionnelle en Python

Python est un langage de programmation puissant et flexible, offrant de nombreuses fonctionnalités pour la manipulation de données. Cet article explique en détail comment manipuler efficacement des listes bidimensionnelles (listes de listes) en Python. Nous aborderons les opérations de base, puis les techniques pratiques telles que l’ajout et la suppression de lignes ou de colonnes, l’inversion des lignes et des colonnes, ainsi que l’extraction de lignes ou de colonnes spécifiques. Cela vous permettra d’améliorer vos compétences en manipulation de données en Python et d’acquérir des connaissances utiles pour le travail.

Sommaire

Méthodes pour ajouter et supprimer des lignes

Nous allons expliquer comment ajouter et supprimer des lignes dans une liste bidimensionnelle. Cela vous permettra de maîtriser les techniques pour manipuler de manière flexible les structures de données.

Ajout de lignes

Pour ajouter une nouvelle ligne à une liste bidimensionnelle, utilisez la méthode append() de la liste. Par exemple, pour ajouter la nouvelle ligne [10, 11, 12], procédez comme suit :

# Ajouter une nouvelle ligne
new_row = [10, 11, 12]
matrix.append(new_row)
print(matrix)
# Sortie : [[1, 2, 3], [4, 10, 6], [7, 8, 9], [10, 11, 12]]

Suppression de lignes

Pour supprimer une ligne spécifique, utilisez le mot-clé del ou la méthode pop(). Par exemple, pour supprimer la deuxième ligne (indice 1), procédez comme suit :

# Supprimer la deuxième ligne
del matrix[1]
print(matrix)
# Sortie : [[1, 2, 3], [7, 8, 9], [10, 11, 12]]

Vous pouvez également utiliser la méthode pop() pour supprimer une ligne et la récupérer en même temps.

# Supprimer et récupérer la deuxième ligne
removed_row = matrix.pop(1)
print(matrix)
print(removed_row)
# Sortie :
# [[1, 2, 3], [7, 8, 9], [10, 11, 12]]
# [4, 10, 6]

Ajout et suppression de plusieurs lignes

Pour ajouter plusieurs lignes, utilisez la méthode extend().

# Ajouter plusieurs lignes
new_rows = [[13, 14, 15], [16, 17, 18]]
matrix.extend(new_rows)
print(matrix)
# Sortie : [[1, 2, 3], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]]

Pour supprimer plusieurs lignes, utilisez une compréhension de liste ou une boucle pour supprimer les lignes correspondant à un critère spécifique.

# Supprimer les lignes avec un indice pair
matrix = [row for i, row in enumerate(matrix) if i % 2 == 0]
print(matrix)
# Sortie : [[1, 2, 3], [10, 11, 12], [16, 17, 18]]

Voilà comment ajouter et supprimer des lignes dans une liste bidimensionnelle en Python. Passons maintenant aux méthodes d’ajout et de suppression de colonnes.

Méthodes pour ajouter et supprimer des colonnes

Nous allons expliquer comment ajouter et supprimer des colonnes dans une liste bidimensionnelle. Cela vous permettra de manipuler plus librement la structure des données.

Ajout de colonnes

Pour ajouter une nouvelle colonne à une liste bidimensionnelle, ajoutez un nouvel élément à chaque ligne. Par exemple, pour ajouter un nouvel élément 10 à chaque ligne :

# Ajouter une nouvelle colonne à chaque ligne
for row in matrix:
    row.append(10)
print(matrix)
# Sortie : [[1, 2, 3, 10], [10, 11, 12, 10], [16, 17, 18, 10]]

Insertion de colonnes à un emplacement spécifique

Pour insérer une colonne à un emplacement spécifique, utilisez la méthode insert() pour insérer un élément dans chaque ligne. Par exemple, pour insérer une nouvelle colonne 5 à la deuxième position (indice 1) :

# Insérer une nouvelle colonne à la deuxième position de chaque ligne
for row in matrix:
    row.insert(1, 5)
print(matrix)
# Sortie : [[1, 5, 2, 3, 10], [10, 5, 11, 12, 10], [16, 5, 17, 18, 10]]

Suppression de colonnes

Pour supprimer une colonne spécifique, supprimez l’élément correspondant dans chaque ligne. Par exemple, pour supprimer la deuxième colonne (indice 1) :

# Supprimer la deuxième colonne de chaque ligne
for row in matrix:
    del row[1]
print(matrix)
# Sortie : [[1, 2, 3, 10], [10, 11, 12, 10], [16, 17, 18, 10]]

Suppression conditionnelle de colonnes

Pour supprimer une colonne basée sur une condition spécifique, combinez une boucle et une condition. Par exemple, pour supprimer la dernière colonne de chaque ligne :

# Supprimer la dernière colonne de chaque ligne
for row in matrix:
    row.pop()
print(matrix)
# Sortie : [[1, 2, 3], [10, 11, 12], [16, 17, 18]]

Voilà comment ajouter et supprimer des colonnes dans une liste bidimensionnelle en Python. Passons maintenant aux méthodes d’inversion des lignes et des colonnes.

Inversion des lignes et colonnes

Nous allons expliquer comment inverser les lignes et colonnes d’une liste bidimensionnelle en Python. Cette opération, également appelée transposition de matrice, est très utile pour changer la perspective des données.

Méthode d’inversion des lignes et colonnes

La méthode la plus simple pour inverser les lignes et colonnes en Python est d’utiliser une compréhension de liste. Voici comment procéder :

# Liste bidimensionnelle d'origine
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# Inversion des lignes et colonnes
transposed_matrix = [[row[i] for row in matrix] for i in range(len(matrix[0]))]
print(transposed_matrix)
# Sortie : [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

Avec cette méthode, on utilise une compréhension de liste pour créer une nouvelle liste où chaque colonne de la liste d’origine devient une ligne de la nouvelle liste.

Utilisation de NumPy

Une méthode plus efficace consiste à utiliser la bibliothèque NumPy. NumPy permet d’inverser les lignes et colonnes de grands ensembles de données de manière simple.

import numpy as np

# Liste bidimensionnelle d'origine
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# Conversion en tableau NumPy et transposition
np_matrix = np.array(matrix)
transposed_matrix = np_matrix.T
print(transposed_matrix)
# Sortie :
# [[1 4 7]
#  [2 5 8]
#  [3 6 9]]

Inversion manuelle des lignes et colonnes

Sans utiliser de compréhension de liste ni NumPy, vous pouvez également créer une nouvelle liste pour inverser les lignes et colonnes manuellement.

# Inversion des lignes et colonnes
transposed_matrix = []
for i in range(len(matrix[0])):
    new_row = []
    for row in matrix:
        new_row.append(row[i])
    transposed_matrix.append(new_row)
print(transposed_matrix)
# Sortie : [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

Voilà comment inverser les lignes et colonnes dans une liste bidimensionnelle en Python. Passons maintenant aux méthodes pour extraire des lignes et colonnes spécifiques.

Extraction de lignes ou colonnes spécifiques

Nous allons expliquer comment extraire des lignes ou colonnes spécifiques d’une liste bidimensionnelle en Python, ce qui permet de récupérer efficacement les données nécessaires.

Extraction d’une ligne spécifique

Pour extraire une ligne spécifique, indiquez son indice. Par exemple, pour extraire la deuxième ligne (indice 1) :

# Liste bidimensionnelle d'origine
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# Extraire la deuxième ligne
second_row = matrix[1]
print(second_row)
# Sortie : [4, 5, 6]

Extraction d’une colonne spécifique

Pour extraire une colonne spécifique, récupérez l’élément correspondant dans chaque ligne. Par exemple, pour extraire la deuxième colonne (indice 1) :

# Extraire la deuxième colonne
second_column = [row[1] for row in matrix]
print(second_column)
# Sortie : [2, 5, 8]

Extraction de plusieurs lignes ou colonnes

Pour extraire plusieurs lignes ou colonnes, utilisez les tranches. Par exemple, pour extraire les deux premières lignes :

# Extraire les deux premières lignes
first_two_rows = matrix[:2]
print(first_two_rows)
# Sortie : [[1, 2, 3], [4, 5, 6]]

De même, pour extraire une plage spécifique de colonnes, utilisez les tranches. Par exemple, pour extraire les deux premières colonnes :

# Extraire les deux premières colonnes
first_two_columns = [row[:2] for row in matrix]
print(first_two_columns)
# Sortie : [[1, 2], [4, 5], [7, 8]]

Extraction de lignes ou colonnes selon une condition

Il est également possible d’extraire des lignes ou colonnes selon une condition. Par exemple, pour extraire les lignes contenant une valeur spécifique :

# Extraire les lignes contenant la valeur 6
rows_with_six = [row for row in matrix if 6 in row]
print(rows_with_six)
# Sortie : [[4, 5, 6]]

Vous pouvez également extraire une colonne si elle contient une valeur spécifique.

# Extraire les colonnes contenant la valeur 8
columns_with_eight = [row[i] for row in matrix for i in range(len(row)) if row[i] == 8]
print(columns_with_eight)
# Sortie : [8]

Voilà comment extraire des lignes ou colonnes spécifiques dans une liste bidimensionnelle en Python. Passons maintenant à des exemples d’applications pratiques.

Exemples d’applications des listes bidimensionnelles

Nous allons présenter quelques exemples pratiques utilisant des listes bidimensionnelles en Python. Ces exemples vous aideront à mieux comprendre l’utilité des listes bidimensionnelles dans des situations concrètes.

Exemple d’application 1 : Système de gestion de notes

Dans un système de gestion de notes d’étudiants, vous pouvez utiliser des listes bidimensionnelles pour gérer les notes de chaque étudiant pour chaque matière.

# Liste des notes des étudiants
grades = [
    ["Alice", 85, 90, 78],
    ["Bob", 92, 88, 79],
    ["Charlie", 88, 70, 95]
]

# Calculer la moyenne de chaque étudiant
for student in grades:
    name = student[0]
    scores = student[1:]
    average = sum(scores) / len(scores)
    print(f"Moyenne de {name} : {average:.2f}")

# Sortie :
# Moyenne de Alice : 84.33
# Moyenne de Bob : 86.33
# Moyenne de Charlie : 84.33

Exemple d’application 2 : Manipulation de pixels d’une image

En traitement d’image, vous pouvez utiliser une liste bidimensionnelle pour représenter les pixels d’une image. Voici un exemple de code pour inverser les couleurs de chaque pixel d’une image.

# Données de pixels 3x3 (chaque élément est un tuple RGB)
image = [
    [(255, 0, 0), (0, 255, 0), (0, 0, 255)],
    [(255, 255, 0), (0, 255, 255), (255, 0, 255)],
    [(0, 0, 0), (255, 255, 255), (128, 128, 128)]
]

# Inverser les couleurs
inverted_image = [[(255-r, 255-g, 255-b) for (r, g, b) in row] for row in image]
print(inverted_image)

# Sortie :
# [[(0, 255, 255), (255, 0, 255), (255, 255, 0)],
#  [(0, 0, 255), (255, 0, 0), (0, 255, 0)],
#  [(255, 255, 255), (0, 0, 0), (127, 127, 127)]]

Exemple d’application 3 : Calcul matriciel

Les listes bidimensionnelles peuvent être utilisées pour les calculs matriciels. Voici un exemple de code pour l’addition de deux matrices.

# Deux matrices
matrix1 = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

matrix2 = [
    [9, 8, 7],
    [6, 5, 4],
    [3, 2, 1]
]

# Addition des matrices
result_matrix = [[matrix1[i][j] + matrix2[i][j] for j in range(len(matrix1[0]))] for i in range(len(matrix1))]
print(result_matrix)

# Sortie : [[10, 10, 10], [10, 10, 10], [10, 10, 10]]

Exemple d’application 4 : Filtrage de données

Un exemple d’utilisation des listes bidimensionnelles pour extraire les données répondant à un critère spécifique.

# Données des employés (nom, âge, département)
employees = [
    ["Alice", 30, "HR"],
    ["Bob", 25, "Engineering"],
    ["Charlie", 35, "Marketing"]
]

# Extraire les employés ayant 30 ans ou plus
senior_employees = [employee for employee in employees if employee[1] >= 30]
print(senior_employees)

# Sortie : [['Alice', 30, 'HR'], ['Charlie', 35, 'Marketing']]

Ces exemples d’application vous permettront de mieux comprendre les différentes façons de travailler avec les listes bidimensionnelles. Passons maintenant aux exercices pratiques.

Exercices pratiques

Nous proposons ici des exercices pour approfondir votre compréhension des manipulations de listes bidimensionnelles. Essayez de résoudre chaque problème en écrivant du code Python.

Exercice 1 : Ajout et suppression de lignes

Écrivez du code pour ajouter une nouvelle ligne [10, 11, 12] à la liste bidimensionnelle ci-dessous, puis pour supprimer la deuxième ligne.

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# Ajouter une nouvelle ligne
# Supprimer la deuxième ligne

print(matrix)
# Sortie attendue : [[1, 2, 3], [7, 8, 9], [10, 11, 12]]

Exercice 2 : Ajout et suppression de colonnes

Écrivez du code pour ajouter une nouvelle colonne 10 à chaque ligne de la liste bidimensionnelle ci-dessous, puis pour supprimer la troisième colonne.

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# Ajouter une nouvelle colonne à chaque ligne
# Supprimer la troisième colonne

print(matrix)
# Sortie attendue : [[1, 2, 10], [4, 5, 10], [7, 8, 10]]

Exercice 3 : Inversion des lignes et colonnes

Écrivez du code pour inverser les lignes et colonnes de la liste bidimensionnelle ci-dessous.

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# Inverser les lignes et colonnes

print(matrix)
# Sortie attendue : [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

Exercice 4 : Extraction de lignes et colonnes spécifiques

Écrivez du code pour extraire la deuxième ligne et la troisième colonne de la liste bidimensionnelle ci-dessous.

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# Extraire la deuxième ligne
# Extraire la troisième colonne

print(second_row)
print(third_column)
# Sortie attendue :
# [4, 5, 6]
# [3, 6, 9]

Exercice 5 : Filtrage de données

Écrivez du code pour extraire les produits dont le prix est supérieur ou égal à 1000 dans la liste bidimensionnelle ci-dessous (chaque ligne représente un produit et son prix).

products = [
    ["Apple", 1200],
    ["Banana", 800],
    ["Cherry", 1500]
]

# Extraire les produits avec un prix de 1000 ou plus

print(expensive_products)
# Sortie attendue : [['Apple', 1200], ['Cherry', 1500]]

En réalisant ces exercices, vous renforcerez votre compréhension des opérations sur les listes bidimensionnelles. Enfin, passons à la conclusion de cet article.

Conclusion

Dans cet article, nous avons exploré en détail comment manipuler des listes bidimensionnelles en Python. Nous avons commencé par la définition et l’accès aux listes bidimensionnelles, puis abordé les méthodes pour ajouter et supprimer des lignes et colonnes, inverser les lignes et colonnes, et extraire des lignes et colonnes spécifiques. Des exemples d’application pratiques ont illustré comment utiliser les listes bidimensionnelles dans des contextes réels, et des exercices pratiques ont été proposés pour approfondir votre compréhension.

En maîtrisant les techniques de manipulation des listes bidimensionnelles en Python, vous pourrez traiter et analyser les données de manière plus efficace. Nous vous encourageons à expérimenter avec le code présenté dans cet article pour renforcer votre compréhension.

Sommaire