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

使用 python,我需要将列表显示为:

one, two, three
four, five, six
seven

我需要它灵活,因为列表会经常更改。

4

2 回答 2

7

您可以使用 itertools 中的石斑鱼配方

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 回答