有没有办法在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)