# [Tutor] parsing an array

Tue Nov 13 06:55:49 CET 2007

```On Nov 13, 2007 8:29 AM, sith . <sith618 at yahoo.com> wrote:

> a = [[0,1,2,3,4,5],[1,2,3,4,5,6]]
> You cannot modify the same array when you are looping through it. You have
> to loop through the copy of the contents :- a[:].
>
> # Untested code
> for i in a[:]: # You are looping through the copy of contents
>
> # I'm new I'm going to try and explain my understanding of this code; pls
> correct if wrong
> # i[0] is [0,1,2,3,4,5] and i[1] is the other
> # the loop first goes to the list on the left then goes to the list on the
> right
>
>    for j in i:
>
> #each element in the sublist is now evaluated
> # first 0 in i[0] then 1 in i[1] then back to 1 in i[0] and then to 2 in
> i[1]--------- is this right?
>        # implement your logic with j
>        if j < i[0]: # or any dynamic conditional check.
>
> the first time this loops,
> 0 in the first list or i[0] is evaulated against itself
> what is the next j value for the next loop?
>    a[i][j] = j <--------- don't understand this bit
>
>
>
>
> I've looked on the net as well as my book (python dummies), but can't find
> an explantion for nested for loops in nested lists.  Would it be possible to
> explain?  Thank you.
>
> ------------------------------
>
>
Not sure but it looks like you want to iterate over an array of array (using
C syntax).

for i in a[:] will make i point to the elements of the list and not its
index. For getting the index you need to use enumerate or just range(len(a))
as in :

for i in range(len(a)) :
# now you can access element as a[i]
for j in range(len(a[i])) :
# now you can access the inner array element as a[i][j]
a[i][j] *= 2

You can use this to modify the array content as well. But do exercise
caution in case of length change.

Or have I completely misunderstood your question ?

--