Printing n elements per line in a list

John Machin sjmachin at lexicon.net
Tue Aug 15 22:49:17 EDT 2006


Steven D'Aprano wrote:
> I think it's possible to
> > hack it up using while loops and some ugly slicing, but hopefully I'm
> > missing something
>
> I don't see why you think that's an ugly hack.
>
> def printitems(sequence, count=5):
>     """Print count items of sequence per line."""
>     numrows = len(sequence)//count
>     if len(sequence)%count != 0: numrows += 1
>     for start in range(0, numrows):
>         items = sequence[start*count:(start+1)*count]
>         for item in items:
>             print item,
>         print

Ugliness is in the eye of the beholder.
It is more blessed to add than to multiply.
Gaze upon this alternative:

def printitems2(sequence, count=5):
    """Print count items of sequence per line."""
    for pos in range(0, len(sequence), count):
        for item in sequence[pos:pos+count]:
            print item,
        print

Cheers,
John




More information about the Python-list mailing list