Особый интерес представляет вопрос о циклах python for. Инженерным программам часто требуются значения предыдущих или будущих индексов, например:
for i in range(0,n):
value = 0.3*list[i-1] + 0.5*list[i] + 0.2*list[i+1]
так далее...
Однако мне больше нравится приятный чистый синтаксис Python:
for item in list:
#Do stuff with item in list
или для списка данных 2d точек:
for [x,y] in list:
#Process x, y data
Мне нравится концепция цикла по списку без явного использования индекса для ссылки на элементы в списке. Мне было интересно, есть ли чистый способ захватить предыдущий или следующий элемент без зацикливания на индексе (или без независимого отслеживания индекса)?
РЕДАКТИРОВАТЬ:
Спасибо Эндрю Джаффе (а также Марку Байерсу) и gnibbler за простые расширяемые примеры. До сих пор я не знал о модулях itertools или nwise. Джон Мачин - спасибо за очень сложный пример того, что НЕ нужно делать. Вы приложили много усилий к этому примеру, очевидно, что несколько рекурсивный алгоритм, который я представил, не может создать список с тем же количеством элементов, что и входной список, и он создает проблемы, если не использует явные индексы. Подобный алгоритм обычно используется при обработке сигналов.