Итак, я работаю с списками в Python 3.3, и вот мой пример кода: < /p>
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']
< /code>
Обратите внимание, как, когда я позвонил в первые две функции, я смог изменить список, в то время как Totest всегда упоминал список, даже когда он был изменен. < /p>
Однако с третьей функцией переменная, которая больше не относится к последней модифицированной версии списка. Мой отладчик говорит мне, что в рамках функции «разделить» список переворачивается, но вне функции он не перевернут. Почему имя переменной больше не относится к списку? < /P>
Почему это происходит? А с какими операторами это происходит? Почему иногда имя переменной по -прежнему относится к списку, когда -либо после того, как он изменен в функции, но это не ведет себя так с другими операторами?
Подробнее здесь: https://stackoverflow.com/questions/197 ... or-on-list
Python 3 нечетное поведение функции в списке ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Проверка типа C# 'is' в структуре - нечетное поведение оптимизации .NET 4.0 x86
Anonymous » » в форуме C# - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-