Désolé pour le titre trompeur et la question de Newbie. Dans le code suivant:
lst = [1, 2, 3] idlst_init = id(lst) lst.append(4) del lst[lst.index(4)] idlst_final = id(lst) print(idlst_init == idlst_final) # True
3 Réponses :
aucun moyen de le faire en python pur ou avec n'importe quel module. Vous devez écrire votre propre structure de données Spesific Class pour le faire. P>
Non, liste ou objet python standard n'a pas de cette fonctionnalité.
id (x) em> renvoie une adresse mémoire d'un objet. La liste est un objet mutable (par opposition à un tuple ou une chaîne) afin de la modifier, vous ne créez pas un nouvel objet, son adresse mémoire et donc le résultat de ID () em> ne change pas.
Comme
Vous pouvez créer votre propre classe par sous-classement Collections.UserList a>. Un exemple:
Vous pouvez créer sa propre classe pour conserver les données et l'historique. Vous pouvez également ajouter une liste pour les fonctions qui doivent être exécutées lorsque vous modifiez la valeur - est souvent appelée
écouteur code>FYI,
del lst [lst.index (4)] code> est équivalent àlst.remove (4) code>