错误:'float'对象不支持项目分配

时间:2016-09-21 22:03:16

标签: python

我在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]))

这最后一行给出了一个错误,说明:float对象不支持项目分配。我不明白如何将y2视为浮点对象,因为它是一个列表,其中每个元素都是用1.5 *(1-exp(-x [i]))计算的。

1 个答案:

答案 0 :(得分:1)

正如 Jean-FrançoisFabre 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])))