# Nested lists or conditional logic?

Joe Francia usenet at -OBFUSCATION-joefrancia.com
Wed Jan 28 19:41:34 CET 2004

```mike beck wrote:
> this is not all complex, but as a noob i'm having a hard time getting
>
> i have a list of items. i need to print the items in batches of x,
> with a summary line after each complete or partial batch, and a total
> line at the end of the job.
>
> if the list looks like ['line1','line2','line3'], and my ITEMSINBATCH
> = 1, the output should look like this:
>
> line1
> ---summary line---
> line2
> ---summary line---
> line3
> ---summary line---
> ---total line---
>
> if ITEMSINBATCH = 2, the output should look like this:
>
> line1
> line2
> ---summary line---
> line3
> ---summary line---
> ---total line---
>
> i've done the following, which works, but it seems like there must be
> a better/simpler/faster way to do this with nested loops. ideas?
>
>
> # ---------------------Begin code---------------------
> ITEMSINBATCH = 1;
> ARBITRARYNUM = 51;
>
> # create a list to work with
> myList = ['1']*ARBITRARYNUM;
>
> for i in range( len(myList) ):
>     # avoid starting at 0
>     count = i + 1;
>
>     print "The item is:",myList[i],'\t',count;
>
>     # ensure that the batch summary line is printed every ITEMSINBATCH
>     # times but not if the number of items is evenly divisible by
>     # ITEMSINBATCH, in which case both the inner print and the outer
>     # print would execute and we'd get consecutive batch summary lines
>     if ( (count) % ITEMSINBATCH ) is 0 and count != len(myList)::
>         print "-----Add batch summary line-----";
>
> # add a final batch line for those trailing items
> print "------Add batch summary line------And BTW, i is", count;
>
> # and add the final summary line
>
> # ---------------------End code---------------------

I'm not sure this is faster, but it sure is simpler:

mylist = range(23)
batchsize = 4

for i in range(0,len(mylist),batchsize):
for l in mylist[i:i+batchsize]:
print l
print "---summary line---"
print "---file summary---"

--
Soraia: http://www.soraia.com

```