0

元のリストを小さなリストに分割せずに、N 要素ごとに複数行にリストを出力する必要があります。

たとえば、N = 3 の場合

これを考えると:

MY_LIST = [ 'A', 'B', 'C', 'D', 'E', 'F']

Pythonでこれを印刷したい:

A B C

D E F

ご協力ありがとうございました

4

3 に答える 3

1

これを試して:

'\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'
于 2013-09-09T19:59:37.833 に答える
1

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
于 2013-09-09T19:56:55.007 に答える