Aller au contenu

Parcourir une matrice

Pour parcourir tous les éléments d'un tableau de tableaux, il faut utiliser des boucles imbriquées, chaque boucle parcourant une dimension du tableau (lignes et colonnes lorsque le tableau a deux dimensions).

Parcours par les valeurs d'éléments

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

>>> for ligne in mat:
...     print(ligne)
...     for elt in ligne:
...         print(elt)
Affichage obtenu
[9, 8, 7]
9
8
7
[6, 5, 4]
6
5
4
[3, 2, 1]
3
2
1

Parcours par les indices des éléments

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

>>> for i in range(len(mat)):
...     print(mat[i])
...     for j in range(len(mat[i])):
...         print(mat[i][j])
Affichage obtenu
[9, 8, 7]
9
8
7
[6, 5, 4]
6
5
4
[3, 2, 1]
3
2
1

Exercice

Complétez la définition de la fonction produit_elements() qui renvoie la somme des éléments du tableau matrice à deux dimensions passé en paramètre.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
def produit_elements(matrice):
    """
    matrice - tableau de tableaux de nombres entiers
    Sortie: int - somme des éléments contenus dans le tableau matrice
    >>> A = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]
    >>> produit_elements(A)
    362880
    """
    pass


##----- Programme de test -----##
if __name__ == "__main__":
    import doctest
    doctest.testmod()
Une solution
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
def produit_elements(matrice):
    """
    matrice - tableau de tableaux de nombres entiers
    Sortie: int - somme des éléments contenus dans le tableau matrice
    >>> A = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]
    >>> produit_elements(A)
    362880
    """
    p = 1
    for ligne in matrice:
        for element in ligne:
            p = p*element
    return p

##----- Programme de test -----##
if __name__ == "__main__":
    import doctest
    doctest.testmod()