Iterar a través de la misma lista comenzando desde diferentes puntos en Python.
Quiero iterar a través de la misma lista desde dos puntos de inicio diferentes.
Puedo hacerlo de esta manera:
para LayerIndex en rango(len(layers) - 1):
thisLayer = layers[LayerIndex]
nextLayer = layers[LayerIndex + 1]
Pero estoy seguro de que debe haber una forma más Pythonica de hacerlo.
davy.ai
Sí, hay una manera más Pythonica de iterar a través de la misma lista desde dos puntos de partida diferentes. Puedes usar la función integrada
zip()
para agrupar la lista en parejas de elementos adyacentes y luego iterar sobre esas parejas así:En este código,
zip()
combina dos listas en pares de elementos, donde la primera lista es todo excepto el último elemento delayers
, y la segunda lista es todo excepto el primer elemento delayers
. Esto crea pares de elementos adyacentes de la lista original, que se pueden iterar directamente en un buclefor
. Dentro del bucle,thisLayer
ynextLayer
se establecerán en cada par de elementos adyacentes en sucesión, lo que te permitirá realizar operaciones en ellos según sea necesario.