元のリストを小さなリストに分割せずに、N 要素ごとに複数行にリストを出力する必要があります。
たとえば、N = 3 の場合
これを考えると:
MY_LIST = [ 'A', 'B', 'C', 'D', 'E', 'F']
Pythonでこれを印刷したい:
A B C
D E F
ご協力ありがとうございました
これを試して:
'\n'.join([' '.join(i) for i in zip(*[iter(MY_LIST)]*N)])
例:
>>> MY_LIST = [ 'A', 'B', 'C', 'D', 'E', 'F']
>>> N=3
>>> '\n'.join([' '.join(i) for i in zip(*[iter(MY_LIST)]*N)])
'A B C\nD E F'
itertools.islice
およびジェネレーター関数を使用できます。
>>> import math
>>> from itertools import islice
def solve(lis, n):
it = iter(lis)
le = float(len(lis))
for _ in xrange(int(math.ceil(le/n))):
yield " ".join(islice(it, n))
>>> for x in solve([ 'A', 'B', 'C', 'D', 'E', 'F'], 3):
... print x
...
A B C
D E F
py3.x のprint
関数を使用する:
>>> from __future__ import print_function
>>> print(*solve([ 'A', 'B', 'C', 'D', 'E', 'F'], 3), sep='\n')
A B C
D E F
>>> print(*solve([ 'A', 'B', 'C', 'D', 'E', 'F', 'G'], 3), sep='\n')
A B C
D E F
G