我想从两个不同的起点迭代同一个列表。 我可以这样做:
for LayerIndex in range(len( layers ) - 1):
thisLayer = layers[LayerIndex ]
nextLayer = layers[LayerIndex + 1 ]
但我确信它应该有一种更Pythonic的方式来做到这一点。
作为一个选项,您可以从该列表的枚举中提取列表的索引:
for index, elem in enumerate(layers):
if(index<(len(layers)-1)):
thiseLayer= elem
nexteLayer= layers[index+1]
这里额外的
if
只是检查下一个元素是否确实存在。
我不确定这是否更“Pythonic”
是的,你可以这样做,但不要忘记第二个变量(nextLayer)不能超过列表/元组的长度。
如果层是连续的,可以使用itertools.pairwise:
import itertools
for thisLayer, nextLayer in itertools.pairwise(layers):
...