Printing n elements per line in a list

Steven D'Aprano steve at REMOVEME.cybersource.com.au
Tue Aug 15 21:46:01 EDT 2006


On Tue, 15 Aug 2006 16:51:29 -0700, unexpected wrote:

> If have a list from 1 to 100, what's the easiest, most elegant way to
> print them out, so that there are only n elements per line.
> 
> So if n=5, the printed list would look like:
> 
> 1 2 3 4 5
> 6 7 8 9 10
> 11 12 13 14 15
> etc.
> 
> My search through the previous posts yields methods to print all the
> values of the list on a single line, but that's not what I want. I feel
> like there is an easy, pretty way to do this. 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



-- 
Steven D'Aprano 




More information about the Python-list mailing list