n = 5
lst = [1,2,3,4,5,6,7,8,9,10]
for group in zip([iter(lst)] n):
print(*group)
1 2 3 4 5
6 7 8 9 10
对于较大的列表,它也快得多:
In [1]: lst = range(1, 10001)
In [2]: n = 5
In [3]: %%timeit
...: for group in zip(*[iter(lst)] * n):
...: group
...:
236 µs ± 49.7 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
In [4]: %%timeit
...: for i in range(0, len(lst), n):
...: lst[i:i+n]
...:
1.32 ms ± 184 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
使用带有步骤的for循环:
n_indices = 5
lst = [1,2,3,4,5,6,7,8,9,10]
for i in range(0, len(lst), n_indices):
print(lst[i:i+n_indices])
[1, 2, 3, 4, 5]
[6, 7, 8, 9, 10]
如果你想更好地使用格式化,你可以像这样使用参数解包:print(*list[i:i+n_indices])并以这种格式获取输出:
1 2 3 4 5
6 7 8 9 10