遍历列表,一次获取多个项目

Iterate over a list, getting multiple items at once

我有一个数字列表,我想成对迭代,但不跳过项目。 例如:

myList = [1,2,3,4,5]
for one,two in myList:
    print(one,two)

我要打印,

1,2
2,3
3,4
4,5

我目前正在使用列表索引并手动获取其他项目,但我想知道是否有“正确”的方法来执行此操作。

您可以 zip 列表本身,只需偏移 1 项。

myList = [1,2,3,4,5]
for x, y in zip(myList, myList[1:]):
    print(f'{x},{y}')

打印:

1,2
2,3
3,4
4,5

有效的方法通常是正确的方法...

原则上您可以使用自身的延迟切片来压缩列表:

myList = [1,2,3,4,5]
for one,two in zip(myList, myList[1:]):
    print(one,two, sep=",")

请注意,zip 在给定的最短可迭代对象上结束,因此它将在较短的切片上结束;不需要也缩短完整的 myList 参数。