Una cuestión de particular interés sobre python para bucles. Los programas de ingeniería a menudo requieren valores en los índices anteriores o futuros, tales como:¿Es posible hacer referencia a entradas de lista dentro de un bucle for sin índices?
for i in range(0,n):
value = 0.3*list[i-1] + 0.5*list[i] + 0.2*list[i+1]
etc ...
Sin embargo me gusta más el buen pitón sintaxis limpia:
for item in list:
#Do stuff with item in list
o para una lista de datos de 2d puntos:
for [x,y] in list:
#Process x, y data
Me gusta el concepto de bucle sobre una lista sin explícitamente usando un índice para referenciar los artículos en la lista. Me preguntaba si había una forma clara de tomar el artículo anterior o siguiente sin pasar el índice (o sin hacer un seguimiento del índice de forma independiente).
EDIT:
Gracias Andrew Jaffe (y por poder de Mark Byers) y gnibbler para los ejemplos simples y extensibles. Hasta ahora no estaba al tanto de los itertools o nwise modules. John Machin: gracias por el muy complejo ejemplo de lo que NO debes hacer. Pones mucho esfuerzo en este ejemplo, obviamente el algoritmo algo recursivo que presenté no puede producir una lista con el mismo número de elementos que la lista de entrada y presenta problemas si no se utilizan índices explícitos. Un algoritmo como este comúnmente ocurriría en el procesamiento de la señal.
Esta solución sería correcta si se supone que el vector cambia de longitud y el cálculo solo se usa para aquellos valores que tienen ambos vecinos. Los multiplicadores en el ejemplo parecen resumir 1.0, y 0 no es realmente el valor del vecino para los primeros y últimos números de los vectores. Además, el ejemplo se completa para durar como vecino en caso de primer valor es cuestionable, sin embargo –