List of lists: indexing and assigning values (Python) -


I'm sure this stupid is simple, but in some way I can not understand it.

  a = [[0] * 4] * 3 a [0] [0] = 1 a [[1, 0, 0, 0], [1, 0, 0, 0 ], [1, 0, 0, 0]]   

I'm just trying to allocate 1 to the first element in the first row. Instead, the value of the first element 1 is assigned to the every line. How should I indexing so that value can be assigned to the right element?

Thank you!

First you should understand this fact.

If you do

  A = [5] * 3   

It is a surprise that a [0] , a [1] and one [2] are the same thing you can do to ensure this by doing so.

  id (a [0]) == ID (a [1]) == ID (a [2]) #True   

Sounds like the following.

  a [0] - + a [1] - + - - 5a [2] - +   

If you do

  a [0] = 10   

The following is the like.

  a [0] ----- & gt; 10 A [1] - + - - 5a [2] - +   

OK. Now back to the list of your list's list. To simplify your problem, define a :

  a = [[4, 5, 6]] * 3   

Unknowingly these are similar objects.

  id (a [0]) == ID (a [1]) == ID (a [2]) #true   

Sounds like the following.

  a [0] - + a [1] - + - - [4, 5, 6] A [2] - +   

If you

  a [0] = 10   

So it is like the following.

  a [0] ----- & gt; 10 A [1] - + - - [4, 5, 6] A [2] - +   

OK This is not a problem. Then you do this

  a [1] [0] = 8   

So it is like the following.

  a [0] ----- & gt; 10 A [1] - + - - [8, 5, 6] One [2] - +   

Done !! It's easy to understand.

HIH. :)

Comments

Popular posts from this blog

c - Mpirun hangs when mpi send and recieve is put in a loop -

python - Apply coupon to a customer's subscription based on non-stripe related actions on the site -

java - Unable to get JDBC connection in Spring application to MySQL -