Python 一次遍历三个项目的列表

Python 一次遍历三个项目的列表,python,Python,如果我有一份包含以下内容的列表: ["A","Bb","C","D","E","F","G"] 如何对其进行迭代,以便输出以下内容: "A Bb C" "D E F" "G" 获取[0:3],[3:6],[6:9] >>> xs = ["A","Bb","C","D","E","F","G"] >>> [' '.join(xs[i:i+3]) for i in range(0, len(xs), 3)] ['A Bb C', 'D E F', 'G']

如果我有一份包含以下内容的列表:

["A","Bb","C","D","E","F","G"]
如何对其进行迭代,以便输出以下内容:

"A Bb C"
"D E F"
"G"

获取
[0:3]
[3:6]
[6:9]

>>> xs = ["A","Bb","C","D","E","F","G"]
>>> [' '.join(xs[i:i+3]) for i in range(0, len(xs), 3)]
['A Bb C', 'D E F', 'G']

这是一个我一直挂着的食谱

def chunks(l, n):
    for i in xrange(0, len(l), n):
        yield l[i:i+n]
您可以在此处使用:


“C”应该输出两次?@Haidro
“G”
评级过高..逻辑是什么?@Haidro抱歉,我已经解决了我的问题,我最喜欢这个,但有没有办法使用itertools函数?不是直接使用。这可能是对itertools的一个很好的补充。@NoelEvans刚刚添加了一个:)看起来比写它更“神奇”simply@Haidro美好的谢谢。问题是最后一项是
('G','',)
,并生成
'G'
@newtover如果这是一个问题,您可以始终在末尾调用
strip()
:)
>>> from itertools import izip_longest
>>> L = ["A","Bb","C","D","E","F","G"]
>>> for item in izip_longest(*[iter(L)]*3, fillvalue=''):
...     print ' '.join(item)
... 
A Bb C
D E F
G