[英]Passing an arbitrary number of parameters to a function in 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))
我希望能够将一个列表L
传递给它,而不是将x
和y
传递给solve_poly_system
,如下所示:
print(solve_poly_system([y**2 - x**3 + 1, y*x], 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, 6, 7, 8)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.