Il problemaAppend valore da una lista in dizionario aggiunge valore a tutte le liste in dizionario
Sto creando un dizionario con liste vuote come valori nel seguente modo.
>>> words = dict.fromkeys(['coach', 'we', 'be'], [])
Il dizionario ha questo aspetto.
Quando aggiungo un valore a una lista, il valore viene aggiunto a tutti come in questo esempio.
>>> words['coach'].append('test')
{'coach': ['test'], 'be': ['test'], 'we': ['test']}
La questione
La mia domanda ha due parti. Primo, perché sta succedendo questo? Secondo, cosa posso fare a riguardo? Cioè, come posso aggiungere un valore a una sola lista?
Immagino che nella creazione del dizionario, ho fatto tutte le liste puntare allo stesso oggetto. Ma non capisco come possa essere perché quando inserisco 0
invece di []
nella creazione di dizionari e poi aggiungo valori invece di aggiungerli, i valori si comportano diversamente come se puntassero a oggetti distinti.
Apprezzerei qualsiasi input. Grazie in anticipo!