Printing n elements per line in a list

Paul Rubin http
Tue Aug 15 20:27:44 EDT 2006


"unexpected" <sumesh.chopra at gmail.com> writes:

> 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

The most direct way would be something like (untested):

   for i in xrange(0, 100, 5):
       print ' '.join(str(j) for j in a[i:i+5])

where a is the array.  If you prefer a "coordinate-free" style, you
could use something like:

   for x,y in itertools.groupby(a, lambda n: n//5):
       print ' '.join(str(k) for k in y)

I hope I got that right.



More information about the Python-list mailing list