如何一次遍历列表中的元素数量?

use*_*650 -1 python

例如,我有这样的简单列表:

l = [1,2,3,4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)

我想以3个元素为一组迭代它:

1,2,3
4,5,6
7,8,9
Run Code Online (Sandbox Code Playgroud)

最简单的方法是什么?

vau*_*tah 5

棘手,但众所周知的方式(来自itertools石斑鱼食谱):

>>> zip(*[iter(l)] * 3))
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
Run Code Online (Sandbox Code Playgroud)

它可以写成

>>> it = iter(l)
>>> zip(it, it, it)
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
Run Code Online (Sandbox Code Playgroud)

这里有完整的解释:zip(*[iter(s)]*n)如何在Python中运行?