1
my_list = ['one', 'two', 'three', 'four', 'five', 'six', 'seven']

Python を使用して、リストを次のように表示する必要があります。

one, two, three
four, five, six
seven

リストは頻繁に変更されるため、柔軟性が必要です。

4

2 に答える 2

7

itertoolsの grouperレシピを使用できます。

def grouper(n, iterable, fillvalue=None):
    "grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
    args = [iter(iterable)] * n
    return izip_longest(fillvalue=fillvalue, *args)

次のように使用します。

for line in grouper(3, my_list):
    print ', '.join(filter(None, line))

オンラインでの動作を確認してください: ideone

于 2012-06-30T05:20:02.890 に答える
0
def matprint(L, numcols):
    for i,item in enumerate(L):
        print item,
        if i and not (i+1)%numcols:
            print '\n',

>>> my_list = ['one', 'two', 'three', 'four', 'five', 'six', 'seven']
>>> matprint(my_list, 3)
one two three 
four five six 
seven
于 2012-06-30T05:25:51.080 に答える