我的目标是将数组分成块,并在for
-loop 中循环这些块。在循环时,我还想打印到目前为止我已经循环的数据的百分比(因为实际上我会在每个循环上发出请求,这将导致循环花费很长时间......)
这是代码:
# Function to chunk the data
def chunker(seq, size):
return (seq[pos:pos + size] for pos in range(0, len(seq), size))
# Init data and chunks
d = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
chunked = chunker(d, 2)
i = 1
for chunk in chunked:
print(i)
print(str((i / len(list(chunked)) * 100)) + '%')
i += 1
print('end')
如果您运行此代码,则循环将只运行一次。
但是,如果您注释/删除print(str((i / len(list(chunked)) * 100)) + '%')
循环内的语句,那么它将运行 5 次,这是预期的行为。
为什么我的print
语句会导致我的循环退出?