Напишите программу, на вход которой подаётся список чисел одной строкой. Программа должна для каждого элемента этого списка вывести сумму двух его соседей. Для элементов списка, являющихся крайними, одним из соседей считается элемент, находящий на противоположном конце этого списка. Например, если на вход подаётся список "1 3 5 6 10", то на выход ожидается список "13 6 9 15 7" (без кавычек).
Если на вход пришло только одно число, надо вывести его же.
Вывод должен содержать одну строку с числами нового списка, разделёнными пробелом.
spisok = [int(e) for e in input().split()]
long = len(spisok) -1
s1 = []
suma = 0
stroka = ""
if long == 0:
print(spisok[0])
elif long == 1:
print(spisok[1]*2, end=' ')
print(spisok[0]*2, end=' ')
else:
for i in spisok:
if i == spisok[0]:
suma = spisok[1]+ spisok[-1]
s1.append(suma)
i += 1
suma = 0
elif (i != spisok[0]) and (i != spisok [-1]):
ind1 = spisok.index(i) -1
ind2 = spisok.index(i) + 1
suma = spisok[ind1] + spisok[ind2]
s1.append(suma)
i += 1
suma = 0
elif i == spisok[-1]:
suma = spisok[-2] + spisok[0]
s1.append(suma)
i += 1
suma = 0
for k in s1:
stroka += str(k) + " "
print(stroka)
Как этот код переделать, чтобы он корректно работал при повторении значений элементов (как мне избавиться от использования index())?