Qu'est-ce qu'un objet muable en Python ?

Un objet muable (qu'on appelle aussi « mutable ») est un objet qui peut être modifié.

Parmi les objets muables, on retrouve par exemple les listes, les dictionnaires ou encore les sets.

Quand on modifie l'objet, sa place en mémoire ne change donc pas (on ne crée donc pas un nouvel objet, on modifie directement l'objet existant) :

liste = [1, 2, 3]

# On affiche la place en mémoire de la liste
print(id(liste))

# On modifie la liste avec la méthode append
liste.append(4)

# On affiche de nouveau la place en mémoire de la liste
print(id(liste))

☝️ Dans le code ci-dessus, on modifie la liste avec la méthode append et on voit bien que l'id de la liste reste le même.

Si vous exécutez ce code dans votre navigateur, l'id retourné sera 0 car l'objet est stocké dans la mémoire du navigateur.

Dans un interpréteur Python le nombre sera plus important (par exemple 8564123452 ou 4524538048).

On a donc bien modifié directement l'objet en mémoire sans en créer de nouveau.

Les objets muables sont en oppositions avec les objets immuables (ou « immutables ») qui eux ne peuvent pas être directement modifiés.