将任意数量的参数传递给python中的函数

问题描述

我有一个python函数,它将任意数量的参数作为输入。我相信这是通过*args实现的(感谢@Anurag Wagh指出了这一点)。我希望能够向其传递值列表。这是我的特定代码

from sympy import solve_poly_system,symbols
x,y,z = symbols('x y z')
print(solve_poly_system([y**2 - x**3 + 1,y*x],x,y))

我希望能够将列表x传递给ysolve_poly_system而不是L

print(solve_poly_system([y**2 - x**3 + 1,L))

其中L = [x,y]

这可能吗?请注意,尽管我对solve_poly_system函数的特定情况感兴趣,但我更广泛地希望将列表传递给需要任意数量输入的python中的任何函数

换句话说,我想知道如何将值列表传递给以*args作为输入的函数。我尤其对列表的长度直到运行时才知道并且在运行时可能会更改的情况感兴趣。

解决方法

从您的问题来看,您似乎知道如何在函数定义中使用*args,并且您正在寻找一种将列表的所有元素传递给该函数的方法,而不管列表的长度如何。如果是您的问题,那么这就是您的答案:

def function(x,*args):
    print(x)
    print(args)

x = 10
l = [5,6,7,8]
function(x,*l)

输出:

10
(5,8)