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