我似乎無法爲這個地方找到一個解釋......爲什麼Python中的for ... in ...語句中的元素使用byValue行爲?
假設我有初始化爲全零向量y:
from numpy import *
y = zeros(5)
它也可能是一個普通的Python陣列,我不我認爲它確實很重要。
我注意到for x in y:
語句的行爲是它使y中每個元素的拷貝,因此當你修改x時,它不會修改y。
for x in y:
x = 1
print y
output : array([ 0., 0., 0., 0., 0.])
我的問題如下:爲什麼這樣?我認爲在Python中,所有的東西都是引用的,並且傳遞的值很少?
我怎樣才能做到以下幾點,使用引用的變量?執行以下似乎工作:
for i in range(len(y)):
y[i] = 2*rand()-1
但是,從我瞭解的Python,這是錯誤的和我相信這將是緩慢的,當我開始使用的值十萬或數百萬的載體。
我還能做什麼?
y = np.zeros(5)
for i in range(len(y)):
y[i] = 2*rand()-1
與:
太棒了,我一直在尋找像枚舉相當一段時間的東西:D – levesque 2010-11-17 18:22:54