[Tutor] Matrix bug

Emile van Sebille emile at fenx.com
Sun Apr 5 23:43:15 CEST 2015


On 4/5/2015 7:12 AM, Narci Edson Venturini wrote:
> The next code has an unexpected result:
>
>>>> a=3*[3*[0]]

a now contains three references to the same object, hence the results 
you show below.

You can create three distinct objects as follows:

 >>> a = [ [0,0,0] for i in (0,1,2) ]
 >>> a[1][1]=1
 >>> a
[[0, 0, 0], [0, 1, 0], [0, 0, 0]]
 >>>

hth,

Emile



>>>> a
> [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
>>>> a[0][0]=1
>>>> a
> [[1, 0, 0], [1, 0, 0], [1, 0, 0]]
>
> The code assigned to "1" a(0,0), a(1,0) and a(2,0).
>
> It was expected: [[1, 0, 0], [0, 0, 0], [0, 0, 0]]
>
> When the followind code is ran, them the correct result is obtained:
>
>>>> a=[[0 for i in range(3)] for j in range(3)]
>>>>>>> a
> [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
>>>> a[0][0]=1
>>>> a
>   [[1, 0, 0], [0, 0, 0], [0, 0, 0]]
>
> So, what is wrong ?
>
> Best Regars,
>
>
>
> Narci
> __________________
> Narci Edson Venturini
> (19) 99733-8420
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
>




More information about the Tutor mailing list