Код: Выделить всё
def change_to_z(lis):
lis[3] = 'z'
def change_to_k(lis):
lis[4] = 'k'
def split(lis):
lis = lis[3:] + lis[:3]
totest = ['a', 'b', 'c', 'd', 'e', 'f']
change_to_z(totest)
print(totest)
change_to_k(totest)
print(totest)
split(totest)
print(totest)
< /code>
и вывод: < /p>
['a', 'b', 'c', 'z', 'e', 'f']
['a', 'b', 'c', 'z', 'k', 'f']
['a', 'b', 'c', 'z', 'k', 'f']
Однако в третьей функции переменная totest больше не ссылается на последнюю измененную версию списка. Мой отладчик сообщает мне, что внутри функции «разделение» список переворачивается, но вне функции он не переворачивается. Почему имя переменной больше не ссылается на список?
Почему это происходит? И с какими операторами это происходит? Почему иногда имя переменной по-прежнему ссылается на список после его изменения в функции, но не ведет себя таким образом с другими операторами?
Подробнее здесь: https://stackoverflow.com/questions/197 ... or-on-list