For Loop in List

Dave Angel d at davea.name
Sun Jan 13 08:20:57 EST 2013


On 01/13/2013 07:45 AM, subhabangalore at gmail.com wrote:
> Dear Group,
>
> I have a list like,
>
>>>> list1=[1,2,3,4,5,6,7,8,9,10,11,12]

What version of Python?

> Now, if I want to take a slice of it, I can.
> It may be done in,
>>>> list2=list1[:3]
>>>> print list2
> [1, 2, 3]
>
> If I want to iterate the list, I may do as,
>
>>>> for i in list1:
> 	print "Iterated Value Is:",i
>
> 	
> Iterated Value Is: 1
> Iterated Value Is: 2
> Iterated Value Is: 3
> Iterated Value Is: 4
> Iterated Value Is: 5
> Iterated Value Is: 6
> Iterated Value Is: 7
> Iterated Value Is: 8
> Iterated Value Is: 9
> Iterated Value Is: 10
> Iterated Value Is: 11
> Iterated Value Is: 12
>
> Now, I want to combine iterator with a slicing condition like
>
>>>> for i=list2 in list1:
> 	print "Iterated Value Is:",i
>
> So, that I get the list in the slices like,
> [1,2,3]
> [4,5,6]
> [7,8,9]
> [10,11,12]
>
> But if I do this I get a Syntax Error, is there a solution?

It'd be only polite if you actually included the traceback, instead of
paraphrasing the error.

> If anyone of the learned members may kindly let me know?
>
> Apology for any indentation error,etc. 
>
> Thanking You in Advance,
>
> Regards,
> Subhabrata 
>
> 	
>
>

let's examine the code that generates the syntax error.
    for i=list2 in list1:

That doesn't match any of the grammar of Python, so it gives a syntax
error.  How could the compiler have interpreted it?  Perhaps it could
have thrown out the 'for' and the colon.  That would be equivalent in
this case to:
     i = False

or we could toss out the "=list2"   but that would give us your first loop.

If I were doing this, I'd do something like (untested):

temp = list1[:]       #make a shallow copy of the list, so we're not
modifying the original
while temp
    print temp[:3]
    temp = temp[3:]

I think you could do something similar with zip, but I don't have the
energy this morning.



-- 

DaveA




More information about the Python-list mailing list