2011-12-10 9 views

答えて

5

実際には共通点はありません。 2番目の配列はnumpy 2D配列です。最初は何も有用ではありません - それは100ゼロのSINGLE配列への参照で、それぞれ一つが100の項目の配列、です:

table = [[0]*100]*100 
table[1][0]=222 
print table[0][0] 

この版画「222」!

table = numpy.zeros([100,100], int) 
table[1][0]=222 
print table[0][0] 

これは '0'を出力します。

5

もう一度、最初の1つは危険なが間違っています。これを参照してください。

あなたが tableを宣言した方法は、サブリストは再びすべての上に重複しているので、それが起こる
In [8]: table = [[0]*2]*10 

In [9]: table 
Out[9]: 
[[0, 0], 
[0, 0], 
[0, 0], 
[0, 0], 
[0, 0], 
[0, 0], 
[0, 0], 
[0, 0], 
[0, 0], 
[0, 0]] 

In [10]: table[0][1] = 5 

In [11]: table 
Out[11]: 
[[0, 5], 
[0, 5], 
[0, 5], 
[0, 5], 
[0, 5], 
[0, 5], 
[0, 5], 
[0, 5], 
[0, 5], 
[0, 5]] 

。これを正しく行う方法については、this FAQを参照してください。

関連する問題