0
0 Комментариев

Не могу никак понять, как можно взаимодействовать с элементами списка внутри цикла for i in x если есть схожие элементы как числа. К примеру, небольшая программа, которая принимает на вход числа и выводит сумму соседей справа и слева, которые вычисляются по индексу:

num = list(int(i) for i in input().split())
for i in num:
    if len(num) == 1:
        print (num[0])
    else:
        if i != num[-1]:
            print(num[(num.index(i))-1] + num[(num.index(i))+1], end = " ")
        else:
            print(num[(num.index(i))-1] + num[0], end = " ")

Программа ломается при вводе одинаковых чисел, допустим «20 10 10 20 50 50 10 20«, выводится след результат «40 30 30 40 70 70 30 40«, в 3 элементе вывода должно быть число 60, однако на выводе 40, в ходе итерации 3 элемент воспринимается как 0 и -1 (значения одинаковые) и следовательно выводит неправильный результат.
Хотелось бы узнать, возможно ли внутри итерации более точно проходить по элементам, что бы не возникало таких ситуаций, именно в цикле for или аналогичном, если нет, то как возможно? И если улучшите программу буду признателен.


Добавить комментарий