Ссылки Возможно ли перечислить записи внутри цикла 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

или для списка данных 2-точечных:

for [x,y] in list:
    #Process x, y data

I как концепция зацикливания списка без явного использования индекса для ссылки на элементы в списке. Мне было интересно, есть ли чистый способ получить предыдущий или следующий элемент без циклического перемещения по индексу (или без отслеживания индекса независимо)?

РЕДАКТИРОВАТЬ:

Спасибо Эндрю Джаффе (и по доверенности Марк Байерс) и gnibbler для простых, расширяемых примеров. До сих пор я не знал ни о itertools, ни о nwise модулях. Джон Мачин - спасибо за очень сложный пример того, что НЕ нужно делать. Вы приложили много усилий в этом примере, очевидно, что несколько рекурсивный алгоритм, который я представил, не может создать список с тем же количеством элементов, что и входной список, и он создает проблемы, если не использовать явные индексы. Подобный алгоритм обычно встречается при обработке сигналов.

5
задан user339860 17 August 2010 в 05:21
поделиться