對於Python來說,我並不瞭解以下操作的結果。 我使用astropy.Table在python astropy表中修改條目
data = Table.read(image_data_file, format='ascii')
然後我提出一個相同的新表的表讀從一個文件:
data2 = data
當一個變化在新表中的條目(或整列)「DATA2 「,這也改變了原來的一個」數據「。
data2['col2'] = 0
這是爲什麼?
對於Python來說,我並不瞭解以下操作的結果。 我使用astropy.Table在python astropy表中修改條目
data = Table.read(image_data_file, format='ascii')
然後我提出一個相同的新表的表讀從一個文件:
data2 = data
當一個變化在新表中的條目(或整列)「DATA2 「,這也改變了原來的一個」數據「。
data2['col2'] = 0
這是爲什麼?
這已經在這裏回答了很多次,但我不記得在什麼名字下。
在Python中,如果你這樣做:
a = [1, 2, 3]
b = a
b.append(4)
b[2] = 5
在隨後結束,A和B都將具有完全相同的數據。
這是因爲b = a,所以實際上,python將兩個變量都指向場景後面的相同內存地址。
使用data2 = data.copy()
複製而不是對同一數據的引用。
謝謝:我無法找到類似的問題。 但令我感到驚訝的是,這種情況對於日曆值是不同的。 我的意思是: X = 1個 Y = X Y = Y + 1 末,x和y在此情況下,兩個變量不poiting到相同的地址是不同的,所以? – Giovanni
因爲y = x使它指向相同的地址,但是然後y = y + 1破壞對x的引用,並且這次獲取y的值並將其加1(因爲y的類型是int或float) –