J'ai du mal à comprendre ce qui se passe dans mon code. Donc, si j'ai la ligne suivante:Comprendre setdefault en Python
d = {}
d.setdefault("key",[]).append("item")
Cette retourne
{'key': ['item']}
Alors je reçois ce setdefault
fait. Il vérifie "key"
dans le d
, un dictionnaire, et s'il n'existe pas, il le crée sinon s'il existe, il renvoie la valeur. Cela renvoie une copie qui peut être manipulée et sera mise à jour dans le dictionnaire original. C'est une nouvelle idée pour moi. Cela signifie-t-il que setdefault renvoie une copie profonde, par opposition à une copie superficielle? J'essaie d'envelopper ma tête autour de cette copie superficielle par rapport à une copie profonde.
"Ceci renvoie une copie qui peut être manipulée ..." - Êtes-vous sûr qu'il s'agit d'une "copie"? Si vous modifiez cette "copie", le "d" original ne change-t-il pas? – alfasin
Si elle renvoyait une copie, la modification de celle-ci * ne * mettrait pas à jour le dictionnaire d'origine. – BrenBarn