S= list(map(int, input().split())) N=S for i in range (1,len(N),2): N[i]=S[-(i+1)] print(N) Программа должна вывести список чисел, где четные позиции не меняются, а нечетные "зеркалятся". Не понимаю в чём у меня ошибка. По моей задумке список S остается неизменным в течении всей программы, но в реальности она всегда становится равной списку N. Почему так происходит (ведь я приравнял строки в начале программы, после они могут быть разными) и как исправить проблему?

9 Июл 2020 в 19:42
254 +1
0
Ответы
1

Проблема заключается в том, что вы приравняли переменные S и N по ссылке, а не создали копию списка. Поэтому при изменении списка N, также изменяется и список S. Чтобы избежать этой проблемы, вам необходимо создать копию списка S.

Вот исправленный код:

S = list(map(int, input().split()))
N = S.copy()
for i in range(1, len(N), 2):
N[i] = S[-(i + 1)]
print(N)

Теперь при изменении списка N, список S останется неизменным.

18 Апр 2024 в 10:47
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир