今天寫的代碼片段:
X = Y = []..X.append(x)Y.append(y)
其中x和y是讀取的每一個數據的xy值,打算將其歸入列表之后繪散點圖,但是繪圖出來卻是一條直線,數據本身并不是這樣分布的。
反復檢查后,發現是X = Y =[]這一句的錯誤。
在python中,形如X = Y的拷貝都是淺拷貝,X和Y是公用同一塊空間的,一旦對它們其中的任意一個進行數據操作,都會改變該空間的內容,除非重新賦一塊空間,改變其指向的位置。
因此只需要改成:
X = []Y = []
就可以運行正確了。
拓展寬一點思考,對于函數來說:
def func(li,num): li.append(12) num = num + 1W = [20,15]a = 10func(W,a)print W,a
li和num也是淺拷貝的方式,但是在num = num + 1這一句中,num改變了其引用對象,因此不會改變其外界的值,而W會增加一個值。
以上這篇淺談python連續賦值可能引發的錯誤就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答