CodeGym /Cours /Python SELF FR /«Modification» d'un tuple

«Modification» d'un tuple

Python SELF FR
Niveau 8 , Leçon 4
Disponible

13.1 Ajout d'éléments

Les tuples sont des objets immuables. Après avoir créé un tuple, il est impossible de le modifier. Mais très souvent, même si un objet ne peut pas être modifié, on peut avoir besoin d'une copie modifiée de celui-ci.

C'est exactement ce qui est fait avec la classe str — elle possède deux douzaines de méthodes qui ne modifient pas l'objet original str, mais renvoient une nouvelle chaîne correspondant à l'essence de la méthode appelée.

Les développeurs Python auraient pu ajouter à la classe tuple des méthodes qui renverraient un nouvel objet lors de la tentative de modification d'un tuple. Mais ils ne l'ont pas fait. Peut-être pour ne pas nous embrouiller, ou pour une autre raison.

Donc toutes les modifications d'un tuple suivent le schéma suivant :


                liste = list(tuple)
                on modifie liste ici
                tuple2 = tuple(liste)
                        
Ajout d'un nouvel élément — méthode append() :

Par exemple, si tu veux ajouter un élément à un tuple, voilà à quoi ça peut ressembler :


my_tuple = (1, 2, 3)
my_list = list(my_tuple)
my_list.append(4)  # on ajoute un élément à la liste 
my_new_tuple = tuple(my_list)

Ajout d'un groupe d'éléments — méthode extend() :

La méthode extend() permet d'ajouter à la liste plusieurs éléments en même temps. Comme argument, la méthode prend un objet iterable (par exemple, une autre liste, un tuple, un ensemble) :


my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.extend((5, 6))  # on ajoute des éléments à la liste
my_new_tuple = tuple(my_list)
        

Insertion au milieu — méthode insert()

La méthode insert() ajoute un élément à une position définie dans la liste. Cette méthode prend deux arguments : l'index où il faut placer l'élément, et l'élément lui-même :


my_tuple = (1, 2, 3, 4)
my_list = list(my_tuple)
my_list.insert(0, 0)  # on ajoute 0 au début de la liste
my_new_tuple = tuple(my_list)
    

13.2 Modification des éléments

Si tu as besoin de changer un élément du tuple, on continue de travailler selon le schéma :


liste = list(tuple)
# on modifie liste ici
tuple2 = tuple(liste)

Attribuons au premier élément du tuple la dernière valeur, et au dernier — la première. Voici le code dont nous aurons besoin :


my_tuple = (1, 2, 3, 4)

my_list = list(my_tuple)
my_list[0], my_list[-1] = my_list[-1], my_list[0]  # on échange les valeurs 
my_new_tuple = tuple(my_list)
print(my_new_tuple)  # (4, 2, 3, 1)
                

13.3 Suppression des éléments

On supprime des éléments du tuple selon le même schéma.

Prenons un exemple où nous voulons supprimer une valeur spécifique du tuple


 atuple = ("apple", "banana", "cherry")

alist = list(atuple)
alist.remove("apple")
atuple = tuple(alist)

print(atuple)  # ('banana', 'cherry') 
        

Note que, à la fin, nous attribuons le nouvel objet tuple à la variable qui contenait auparavant la référence à l'original tuple. On peut faire ça, mais le tuple original ne sera pas modifié. Et si quelque part plus haut dans le code il y avait une référence à celui-ci, elle continuera de pointer vers le tuple original.

Supprimons maintenant le dernier élément du tuple.

Voici à quoi ressemblera ce code :


atuple = ("apple", "banana", "cherry")

alist = list(atuple)
alist.pop() # on supprime le dernier élément
atuple = tuple(alist)
            
print(atuple)  # ('apple', 'banana')

        

Je pense que tu comprends la logique. On ne peut pas supprimer des éléments d'un tuple, mais si on le veut vraiment, on peut 😊

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION