2015-09-26 59 views
-2

對於Python來說,我並不瞭解以下操作的結果。 我使用astropy.Table在python astropy表中修改條目

data = Table.read(image_data_file, format='ascii') 

然後我提出一個相同的新表的表讀從一個文件:

data2 = data 

當一個變化在新表中的條目(或整列)「DATA2 「,這也改變了原來的一個」數據「。

data2['col2'] = 0 

這是爲什麼?

回答

0

這已經在這裏回答了很多次,但我不記得在什麼名字下。

在Python中,如果你這樣做:

a = [1, 2, 3] 
b = a 
b.append(4) 
b[2] = 5 

在隨後結束,A和B都將具有完全相同的數據。

這是因爲b = a,所以實際上,python將兩個變量都指向場景後面的相同內存地址。

+0

謝謝:我無法找到類似的問題。 但令我感到驚訝的是,這種情況對於日曆值是不同的。 我的意思是: X = 1個 Y = X Y = Y + 1 末,x和y在此情況下,兩個變量不poiting到相同的地址是不同的,所以? – Giovanni

+0

因爲y = x使它指向相同的地址,但是然後y = y + 1破壞對x的引用,並且這次獲取y的值並將其加1(因爲y的類型是int或float) –

1

使用data2 = data.copy()複製而不是對同一數據的引用。