如何在浮点数中转换列表?

时间:2017-09-13 19:49:45

标签: python

我的代码有以下错误:float()参数必须是字符串或数字,而不是' list'。

我知道我的ww函数是一个值列表,但我不知道如何将它转换为float,因为ww是一个函数。我按照以下问题尝试了列表理解:

TypeError: float() argument must be a string or a number, not 'list' python

但它没有用。

def func(n):
    return 2/(n+1)

def ww(n):
    return [-1 + i*func(n) for i in range(0,n+1)] 

def g(x,y):
    return x**2 + y

这个g(x,y)实际上是球谐函数,但为了简单起见我这样做了。

def integral(n):
    return [np.pi*func(n)*(1 + math.cos(np.pi*(-1 + i*func(n))))*g(np.pi*i,ww(n)) for i in range(0,n+1)]   

1 个答案:

答案 0 :(得分:0)

您的ww函数返回一个浮点数列表,然后将其传递到g()。计算失败,因为您无法将list添加到数字。

如果不对数字执行某种操作,则无法“将浮动列表转换为浮点数” - 例如“添加”,“减去”,“相乘”。

但是,您可以将列表转换为numpy数组,该数组可以作为一个整体进行操作。将一个数字乘以一个数字乘以每个值,返回结果。

例如:

>>> a = np.array([1.0,2.0,3.0])
>>> b = 2
>>> b ** 2 + a
array([5.0, 6.0, 7.0])

如果您将ww的返回值换行以转换为numpy数组,则g()中的后续计算应该有效。

def ww(n):
    return np.array([-1 + i*func(n) for i in range(0,n+1)])