
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.
