错误:“float”对象不支持项分配

2024-05-18 06:10:50 发布

您现在位置: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是如何被视为float对象的,因为它是一个列表,其中每个元素都是用1.5*(1-exp(-x[I])计算的。


Tags: 对象fromimportnumpymatplotlibas编程np
1条回答
网友
1楼 · 发布于 2024-05-18 06:10:50

正如Jean francois Fabre和Barmar所指出的,只有当y2已经分配给一个float时,才会收到这个消息。无论如何,您都需要以某种方式构建列表。

使用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])))

相关问题 更多 >