У меня странная проблема с list.append()
. Я строй списка соединяющий несколько значений из Словаря следующим образом:Почему list.append (obj) изменяет obj в Python?
In [3]: myDict = {'k1': u'value1', 'k2': [u'value2']}
In [4]: myList = myDict['k2']
In [5]: myList
Out[5]: [u'value2']
In [6]: myList.append(myDict['k1'])
In [7]: myList
Out[7]: [u'value2', u'value1']
In [8]: myDict
Out[8]: {'k1': u'value1', 'k2': [u'value2', u'value1']}
Я не понимаю, почему myDict
модифицирован после append
в In [6]
(увидеть разницу между In [2]
и Out [8]
).
Потому что они относятся к одному и тому же объекту. –
Becuase myDict и myDict ['k2'] _refer в тот же список_. – RemcoGerlich
'myList is myDict ['k2']' - лучший вопрос может быть *, почему вы ожидали чего-то еще? * – jonrsharpe