Как Python передает ключевое слово изменения значений в списке?

python

25 просмотра

1 ответ

У меня есть одна небольшая программа на Python. Я создал список, и я передаю его в качестве параметра функции. По моему мнению, это должно дать вывод как 1 2 3 4 5. Но это дает мне 5 2 3 4 5как вывод. Если я просто пишу ключевое слово pass внутри цикла, тогда он ничего не должен делать. Почему это меняет мой вывод?

Вот мой код:

def fun1(list1):
    for list1[0] in list1: 
        pass
list2=[1,2,3,4,5]
fun1(list2)
print(list2)
Автор: Thakur Akshay Источник Размещён: 08.11.2019 11:26

Ответы (1)


2 плюса

Ваши forциклы устанавливают переменную цикла list1[0]для каждого значения в списке list1. После завершения переменная цикла содержит любое значение в последней итерации, которое в данном случае равно 5. Если вы не хотите, чтобы ваш цикл имел этот странный побочный эффект, не используйте существующую переменную (например list1[0]) в качестве переменной цикла. Я никогда не видел, чтобы кто-то делал это раньше: это очень странная вещь.

Автор: khelwood Размещён: 20.08.2016 02:43
Вопросы из категории :
32x32