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. Почему так происходит (ведь я приравнял строки в начале программы, после они могут быть разными) и как исправить проблему?
Проблема заключается в том, что вы приравняли переменные 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 останется неизменным.
Проблема заключается в том, что вы приравняли переменные 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 останется неизменным.