Aller au contenu

Parcourir les éléments d'un tableau

Comme pour les chaînes de caractères, il y a trois méthodes pour parcourir les éléments d'un tableau.

Parcours par les valeurs

On peut parcourir élément par élément avec for ... in ...:

>>> tab = [1789, 666, 1968, 42, 2001, 1991]
>>> for element in tab:
...     print(element)
... 
1789
666
1968
42
2001
1991

Parcours par les indices

On peut parcourir le tableau indice par indice grâce à for ... in range(len(...)):

>>> tab = [1789, 666, 1968, 42, 2001, 1991]
>>> for indice in range(len(tab)):
...     print(indice, tab[indice])
... 
0 1789
1 666
2 1968
3 42
4 2001
5 1991

Parcours des indices et valeurs

On peut aussi parcourir le tableau en utilisant à la fois les indices et les valeurs des éléments grâce à for ... in enumerate(...):

>>> tab = [1789, 666, 1968, 42, 2001, 1991]
>>> for indice, valeur in enumerate(tab):
...     print(indice, valeur)
... 
0 1789
1 666
2 1968
3 42
4 2001
5 1991

Exemple

Définir la fonction nb_elt_impairs() qui prend en paramètre un tableau d'entiers et qui renvoie le nombre d'entiers impairs présents dans ce tableau.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
def nb_elt_impairs(tab):
    """
    tab – list, tableau d'entiers
    Sortie: int - le nombre d'éléments impairs du tableau
    >>> nb_elt_impairs([])
    0
    >>> nb_elt_impairs([3])
    1
    >>> nb_elt_impairs([1, 2, 3, 4, 5, 6, 8])
    3
    """
    pass


##----- Programme principal et tests -----##
if __name__ == '__main__':
    import doctest
    doctest.testmod()
Mise au point

On a déjà rencontré ce type d'algorithme à plusieurs reprises. Ne pas maîtriser à ce stade cet algorithme très élémentaire montrerait un niveau de travail très insuffisant de votre part...

Rappelons le principe :

  • On utilise une variable nb initialisée à 0 dans laquelle on va stocker (décompter) le nombre d'éléments impairs du tableau.
  • Pour réaliser ce décompte, on parcourt les éléments du tableau (boucle for) : si cet élément est impair, on incrémente la variable nb.
  • En sortie de boucle, nb a pour valeur le nombre d'éléments impairs du tableau.
Une solution
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
def nb_elt_impairs(tab):
    """
    tab – list, tableau d'entiers
    Sortie: int - le nombre d'éléments impairs du tableau
    >>> nb_elt_impairs([])
    0
    >>> nb_elt_impairs([3])
    1
    >>> nb_elt_impairs([1, 2, 3, 4, 5, 6, 8])
    3
    """
    nb = 0
    for valeur in tab:
        if valeur%2 == 1:
            nb = nb + 1
    return nb

##----- Programme principal et tests -----##
if __name__ == '__main__':
    import doctest
    doctest.testmod()

On peut également utiliser les autres façons de parcourir les éléments d'un tableau (mais c'est inutile ici) :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
def nb_elt_impairs(tab):
    """
    tab – list, tableau d'entiers
    Sortie: int - le nombre d'éléments impairs du tableau
    >>> nb_elt_impairs([])
    0
    >>> nb_elt_impairs([3])
    1
    >>> nb_elt_impairs([1, 2, 3, 4, 5, 6, 8])
    3
    """
    nb = 0
    for i in range(len(tab)):
        if tab[i]%2 == 1:
            nb = nb + 1
    return nb

##----- Programme principal et tests -----##
if __name__ == '__main__':
    import doctest
    doctest.testmod()