如何防止FOR循环过早结束?

R. *_*ark 2 python for-loop

码:

tsol = [6,7,8,9,10]
lenth = len(tsol)

for t,tnext in zip(tsol[0:lenth],tsol[1:lenth]):

  print t,tnext
Run Code Online (Sandbox Code Playgroud)

结果:

缺少6,7
7,8
8,9
9,10
和t值"10"

Nig*_*nel 7

你想使用功能itertools.izip_longest:

from itertools import izip_longest
for t,tnext in izip_longest(tsol[0:lenth],tsol[1:lenth]):

  print t,tnext
Run Code Online (Sandbox Code Playgroud)

输出:

6 7
7 8
8 9
9 10
10 None
Run Code Online (Sandbox Code Playgroud)

如果要使用与None您不同的占位符值,可以指定fillvalue关键字参数:

izip_longest(tsol[0:lenth],tsol[1:lenth], fillvalue="whatever")
Run Code Online (Sandbox Code Playgroud)

输出:

6 7
7 8
8 9
9 10
10 whatever
Run Code Online (Sandbox Code Playgroud)