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