Aller au contenu principal

Informatique · Première · 4 min de lecture

Tableaux indexés et tableaux de tableaux

Tableau (list en Python) dont les éléments sont de même type : lecture et modification d'un élément par son indice, de 0 à len(t) − 1 ; parcours par indice ou par élément ; construction par compréhension ; tableau de tableaux pour représenter une matrice, élément a[i][j] à la ligne i et à la colonne j.

Chapitre du programme : Numérique et sciences informatiques (spécialité)

Bloc 1 sur 7 · Comprendre

Comprendre : des cases numérotées à partir de 0

Un tableau range plusieurs valeurs de même type dans des cases numérotées. En Python, on l'écrit avec une list entre crochets. Le numéro d'une case est son indice : le premier élément a l'indice 0, le dernier l'indice len(t) − 1. Un indice négatif compte depuis la fin : t[-1] est le dernier élément.

t = [5, 8, 3, 6, 1]
print(t[0], t[2], len(t))
print(t[-1], t[-2])
t[1] = 10
print(t)
5 3 5
1 6
[5, 10, 3, 6, 1]

Contrairement à un p-uplet, un tableau se modifie : t[1] = 10 remplace la valeur de la case d'indice 1.

Bloc 2 sur 7 · Approfondir

Approfondir : parcours, compréhension, matrices

Deux façons de parcourir. Par indice, for i in range(len(t)) donne 0, 1, 2… ; par élément, for x in t donne directement les valeurs.

t = [5, 8, 3]
for i in range(len(t)):
    print(i, t[i])
for x in t:
    print(x)
0 5
1 8
2 3
5
8
3

Tableau en compréhension. On décrit le contenu d'un tableau par une expression et une boucle, éventuellement filtrée par un if :

u = [3 * x + 1 for x in range(4)]
print(u)
v = [3 * x + 1 for x in range(4) if x % 2 == 0]
print(v)
[1, 4, 7, 10]
[1, 7]

Pour v, seules les valeurs paires de x (0 et 2) sont gardées.

Tableau de tableaux. Une matrice est un tableau de lignes ; m[i][j] est l'élément de la ligne i et de la colonne j, les deux comptées à partir de 0.

m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(m[1])
print(m[1][2], m[2][0])
s = 0
for i in range(3):
    s = s + m[i][i]
print(s)
[4, 5, 6]
6 7
15

La boucle additionne m[0][0], m[1][1] et m[2][2] : la diagonale principale, 1 + 5 + 9 = 15.

Bloc 3 sur 7 · Exemple

Exemple guidé : modifier puis calculer

Énoncé. Quel nombre ce programme affiche-t-il ?

t = [4, 2, 7, 5, 8]
t[0] = t[1] + t[3]
print(t[0] * t[2])

Résolution.

  1. Indices à partir de 0 : t[1] = 2, t[2] = 7, t[3] = 5.
  2. t[0] reçoit 2 + 5 = 7 ; le tableau devient [7, 2, 7, 5, 8].
  3. Le programme affiche t[0] × t[2] = 7 × 7 = 49.
49

Variante : compter par un parcours. Combien d'éléments sont strictement supérieurs au premier, 4 ? Ce sont 7, 5 et 8.

t = [4, 2, 7, 5, 8]
n = 0
for i in range(len(t)):
    if t[i] > t[0]:
        n = n + 1
print(n)
3

Bloc 4 sur 7 · Visualiser

Voir : indices positifs, indices négatifs, matrice

Pour t = [5, 8, 3, 6, 1] :

Tableau : Valeur, 5, 8, 3, 6, 1
Valeur58361
Indice01234
Indice négatif−5−4−3−2−1

Pour m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]], le premier indice choisit la ligne, le second la colonne :

Tableau : Ligne, colonne 0, colonne 1, colonne 2
Lignecolonne 0colonne 1colonne 2
ligne 0123
ligne 1456
ligne 2789

Continuez sur votre lancée

Vous avez découvert l’essentiel et un exemple. Retrouvez la suite du cours et les points à retenir, puis passez à l’entraînement guidé dans votre compte.

  • Les formules et les repères à retenir
  • Les erreurs fréquentes expliquées
  • Un exercice avec des aides et sa correction

L’accès gratuit comprend les cours et exercices de votre niveau choisi.

Sources

  • BO spécial n°1 du 22 janvier 2019 — programme de spécialité numérique et sciences informatiques de première générale, annexe (https://cache.media.education.gouv.fr/file/SP1-MEN-22-1-2019/26/8/spe633_annexe_1063268.pdf) — « Représentation des données : types construits », tableau indexé, tableau donné en compréhension
  • Documentation officielle de Python 3, The Python Language Reference et The Python Standard Library (https://docs.python.org/3/) — The Python Tutorial, « Lists » et « List Comprehensions » ; The Python Standard Library, « Sequence Types — list »

Vous pensez avoir trouvé une erreur dans cette leçon ? Signalez-la par e-mail.

Explorer les autres cours

Accès rapide