Aller au contenu

Ajouter un élément à un tableau

Les chaînes de caractères (et les tuples) étant immuables, on ne peut pas modifier l'un de leurs éléments, ni en ajouter un, sans créer un nouveau conteneur.

Par contre, nous avons vu deux méthodes pour ajouter un élément à un tableau (en fin de celui-ci) : la concaténation et la méthode .append()

Concaténation

L'opérateur de concaténation « + » est prioritaire sur l'affectation. Il crée par conséquent un nouvel objet de type list avant de lui accoler une étiquette.

Testez les instructions suivantes :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
>>> a = [2, 3, 4, 5]

>>> id(a)
102101896

>>> a = a + [6]

>>> a
[2, 3, 4, 5, 6]

>>> id(a)
101824776

Vous pouvez constater que l'instruction a+[6] crée un nouvel objet de type list puis l'étiquette a est « décollée » de l'objet d'origine puis accolée à ce nouvel objet.

  • Ligne 1 :
  • Ligne 6, création d'un nouveau tableau avec l'instruction a + [6] :
  • Ligne 6, instruction d'affectation a = a + [6] :

Le tableau d'origine n'est alors plus accessible : on peut considérer qu'il est « effacé » de la mémoire.

Agrandir sans changer de tableau

Pour ajouter un élément à un tableau (en fin de celui-ci), on utilise la méthode .append(). Cette méthode modifie le tableau sur place (on continue de remplir la bouteille sans changer de bouteille).

Testez les instructions suivantes :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
>>> a = [2, 3, 4, 5]

>>> id(a)
139779891299912

>>> a.append(42)

>>> a
[2, 3, 4, 5, 42]

>>> id(a)
139779891299912

Nous pouvons constater que l'instruction a.append(42) a ajouté un élément au tableau sans changer l'identifiant, c'est-à-dire sans changer l'objet list.

  • Ligne 1 :
  • Ligne 6, après l'instruction a.append(42), l'objet désigné par a est le même objet mais avec un élément de plus :