【问题标题】:Python: array as an argument for a functionPython:数组作为函数的参数
【发布时间】:2021-07-25 18:08:36
【问题描述】:

我想知道如何在 Python 中将数组用作函数参数。我将展示一个简短的示例:

def polynom(x, coeff_arr):
    return coeff_arr[0]+ coeff_arr[1]+x +coeff_arr[2]*x**2

我显然得到了需要 2 个位置参数的错误,但是当我尝试运行它时给出了 4 个,有人可以告诉我如何在函数的参数中使用 (coeff_arr[i]) 来接受吗? 干杯

【问题讨论】:

  • 使用如下列表调用它:polynom(1, [2, 3, 4])
  • 或将其更改为:def polynom(x, *coeff_arr) ;)
  • “我显然得到了错误,需要 2 个位置参数,但是当我尝试运行它时给出了 4 个”这并不明显。请展示你是如何运行它的。

标签: python arrays function input arguments


【解决方案1】:

您的问题缺少用于调用该函数的代码,但从错误中我推断您将其称为polynom(x, coefficient1, coefficient2, coefficient3)。相反,您需要将系数作为列表传递:

polynom(x, [coefficient1, coefficient2, coefficient3])

或者使用解包操作符*来定义函数如下,它将把x之后的所有位置参数作为一个列表放入coeff_arr

def polynom(x, *coeff_arr):

(解包操作符也可以用在函数调用中,这与获取列表并将其元素作为位置参数传递相反:

polynom(x, *[coefficient1, coefficient2, coefficient3])

等价于

polynom(x, coefficient1, coefficient2, coefficient3)

)

【讨论】:

  • 非常感谢。我首先在我的数据上使用 scipy 的 curve_fit() 函数获得了 coeff_arr,然后使用 polynom(x, coeff_arr) 调用了该函数。
最近更新 更多