Skip to content

Mettre à jour des tuples en Python (ajouter, modifier, supprimer des éléments dans des tuples)

En Python, puisque tuple est immuable, vous ne pouvez pas le mettre à jour, c’est-à-dire que vous ne pouvez pas ajouter, modifier ou supprimer des éléments (éléments) dans tuple.

tuple représente des données que vous n’avez pas besoin de mettre à jour, vous devez donc utiliser list plutôt que tuple si vous avez besoin de le mettre à jour. Cependant, si vous avez vraiment besoin de mettre à jour tuple, vous pouvez le convertir en liste, le mettre à jour, puis le retransformer en tuple.

Cet article décrit le contenu suivant.

  • tuple est immuable
  • Ajouter un élément au tuple
  • Ajouter/insérer des éléments au tuple
  • Changer les éléments dans le tuple
  • Supprimer des éléments dans le tuple

Notez que, bien que des mots tels que « ajouter », « modifier » et « supprimer » soient utilisés par commodité, en réalité, un nouvel objet est généré et l’objet d’origine n’est pas mis à jour.

tuple est immuable

Utilisez le tuple suivant comme exemple.

t = (0, 1, 2)

print(t)
# (0, 1, 2)

print(type(t))
# <class 'tuple'>

Vous pouvez obtenir des éléments par index [] ou slice [:] comme des listes.

print(t[0])
# 0

print(t[:2])
# (0, 1)

Étant donné que tuple est immuable, vous ne pouvez pas attribuer une nouvelle valeur à un élément.

# t[0] = 100
# TypeError: 'tuple' object does not support item assignment

Les méthodes destructives (= méthodes qui mettent à jour l’objet d’origine) telles que append() dans la liste ne sont pas définies dans le tuple.

# t.append(100)
# AttributeError: 'tuple' object has no attribute 'append'

Ajouter un élément au tuple

tuple est immuable, mais vous pouvez concaténer plusieurs tuples avec l’opérateur +. À ce stade, l’objet d’origine reste inchangé et un nouvel objet est généré.

t_add = t + (3, 4, 5)

print(t_add)
# (0, 1, 2, 3, 4, 5)

print(t)
# (0, 1, 2)

Seuls les tuples peuvent être concaténés. Il ne peut pas être concaténé avec d’autres types tels que list.

# print(t + [3, 4, 5])
# TypeError: can only concatenate tuple (not "list") to tuple

Si vous souhaitez ajouter un élément à un tuple, vous pouvez concaténer un tuple avec un élément.

t_add_one = t + (3,)

print(t_add_one)
# (0, 1, 2, 3)

Notez qu’un tuple avec un élément nécessite une virgule à la fin.

Ajouter/insérer des éléments au tuple

Si vous souhaitez ajouter de nouveaux éléments au début ou à la fin du tuple, vous pouvez le concaténer avec l’opérateur + comme décrit ci-dessus, mais si vous souhaitez insérer un nouvel élément à n’importe quelle position, vous devez convertir un tuple en une liste .

Convertir tuple en liste avec list().

l = list(t)

print(l)
# [0, 1, 2]

print(type(l))
# <class 'list'>

Insérer un élément avec insert().

l.insert(2, 100)

print(l)
# [0, 1, 100, 2]

Convertir la liste en tuple avec tuple().

t_insert = tuple(l)

print(t_insert)
# (0, 1, 100, 2)

print(type(t_insert))
# <class 'tuple'>

Changer les éléments dans le tuple

Vous pouvez modifier les éléments du tuple de la même manière.

Convertissez le tuple en liste, mettez-le à jour et retransformez-le en tuple.

l = list(t)
l[1] = 100
t_change = tuple(l)

print(t_change)
# (0, 100, 2)

Supprimer des éléments dans le tuple

Vous pouvez également supprimer des éléments du tuple de la même manière.

l = list(t)
l.remove(1)
t_remove = tuple(l)

print(t_remove)
# (0, 2)

Dans l’exemple ci-dessus, remove() est utilisé, mais vous pouvez également utiliser pop() et del.