0
votes

Python Comment savoir si une liste a été modifiée

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


2 commentaires

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


FYI, del lst [lst.index (4)] est équivalent à lst.remove (4)


3 Réponses :


0
votes

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.


0 commentaires

0
votes

Non, liste ou objet python standard n'a pas de cette fonctionnalité. id (x) 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 () ne change pas. Comme Furas déjà suggéré, vous devez créer votre propre objet qui peut suivre ses modifications.


0 commentaires

3
votes

Vous pouvez créer votre propre classe par sous-classement Collections.UserList . Un exemple: xxx


0 commentaires