2016-09-21 64 views
2

我在Python編程,我不知道我做錯了什麼:錯誤:「浮動」對象不支持項目分配

import numpy as np 
import matplotlib.pyplot as plt 
from math import exp 
x=np.linspace(0.0,4.0,100) 
y1=x 
for i in range(100): 

    y2[i]=1.5*(1-exp(-x[i])) 

最後一行給了我一個錯誤,指出:浮動對象不支持項目分配。我不明白y2如何被認爲是一個浮點對象,因爲它是一個列表,其中每個元素用1.5 *(1-exp(-x [i]))計算。

+3

我沒有看到在你的代碼中聲明的'y2'數組。它是在同一個python引擎中以前運行的全局變量的剩餘部分嗎? (發生在PyScripter上) –

+0

'y2'在哪裏實際初始化? –

+1

您之前已將'float'分配給'y2'。 'y2 [i]'只適用於'y2'是一個數組。 – Barmar

回答

1

由於讓·弗朗索瓦·法布爾Barmar所指出的,只有當您已經分配到一個浮動Y2得到這個消息。在任何情況下,您都需要以這種或那種方式構建列表。

使用numpy的陣列設施(信貸John1024):

y2 = 1.5*(1-np.exp(-x)) 

使用列表理解

y2 = [ 1.5*(1-exp(-x[i])) for i in range(100) ] 

如果這些比你想使用更先進,你可以初始化y2並在你的循環中構建它:

y2 = [] 
for i in range(100): 
    y2.append(1.5*(1-exp(-x[i]))) 
+0

我懷疑這是問題所在。試試'y2 [10] = 10'你會得到'NameError:name'y2'沒有被定義'。你正在回答_next_問題。 –

相關問題