如何在python中的for循环中一次获得两个项目



有没有办法在python中的for循环中一次读取两个项目?如果是,最好的方法是什么?

例如:

a = [1,2,3,4,5,6,7,8,9]
for ix, i in enumerate(a):
j = a[ix+1]
print("i:", i, "j:", j)

但当i到达最后一项时,它将失败,因为a[ix+1]不存在。有没有更好的方法永远不会失败?

您可以使用itertools.zip_longest

例如:

from itertools import zip_longest
a = [1,2,3,4,5,6,7,8,9]
for i,v in zip_longest(a, a[1:]): 
print(i, v)

输出:

1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 None

您可以通过切下最后一项来修复代码:

a = [1,2,3,4,5,6,7,8,9]
for ix, i in enumerate(a[:-1]):
j = a[ix+1]
print("i:", i, "j:", j)

更好的方法是使用zip:

a = [1,2,3,4,5,6,7,8,9]
for i, j in zip(a, a[1:]):
print("i:", i, "j:", j)

如果你想使用for循环,你应该迭代直到-1值:

for i in (a[:-1]):
j = a[i+1]
print("i:",i,"j:",j)

最新更新