1. 程式人生 > >Python列表List儲存物件的指標

Python列表List儲存物件的指標

突然發現Python中列表(list)的一些有意思的設計:

# coding:utf-8
a = [[1,2,3],[4,5,6],[7,8,9]]
print 'a : '
print a
b = a
print 'b : '
print b

a[0][0]=10
a[0][1]=10
a[0][2]=10
print 'a修改過後,b取值 : '
print b

結果為:

可以發現修改列表a的同時,列表b也發生了變化,可以判斷二者指向同一個列表。

通過進一步查閱,可以發現標準安裝的Python中用列表(list)儲存一組值,可以用來當作陣列使用,不過由於列表的元素可以是任何物件,因此列表中所儲存的是物件的指標。所以出現上面的現象。


進一步解決可以參考http://old.sebug.net/paper/books/scipydoc/numpy_intro.html