Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将未指定数量的参数传递到lambda?(Python语言)_Python_Lambda_Arguments - Fatal编程技术网

如何将未指定数量的参数传递到lambda?(Python语言)

如何将未指定数量的参数传递到lambda?(Python语言),python,lambda,arguments,Python,Lambda,Arguments,假设我们有一个函数func,在这个函数中有一个n项的列表。n个数字根据给定给func的参数而变化。func中还有一个lambda函数(在调用func时使用eval创建),它接受n个参数并返回一些内容。是否有任何方法可以将列表中的项传递给lambda函数(列表中的项和lambda中的参数在数量上始终相等,唯一的区别是列表项包装在[]中,而参数不包装)?您不能简单地将列表插入lambda,因为它将其视为一个参数,而实际上列表可能有3个、30个或任意数量的参数。 简图: def func(*args)

假设我们有一个函数func,在这个函数中有一个n项的列表。n个数字根据给定给func的参数而变化。func中还有一个lambda函数(在调用func时使用eval创建),它接受n个参数并返回一些内容。是否有任何方法可以将列表中的项传递给lambda函数(列表中的项和lambda中的参数在数量上始终相等,唯一的区别是列表项包装在[]中,而参数不包装)?您不能简单地将列表插入lambda,因为它将其视为一个参数,而实际上列表可能有3个、30个或任意数量的参数。 简图:

def func(*args):
    lst = [n items where n changes depending on *args]
    lambda n arguments/items: do sth

您可以使用lambda执行类似于*arg和**kwargs的操作:

>>> a = lambda *args, **kwargs: (args, kwargs)
>>> a(1, 2, a="a", b="b")
((1, 2), {'a': 'a', 'b': 'b'})

这看起来有点像一个为什么你首先要使用lambda,你想做什么?但是我的lambda函数已经被创建了,它看起来像这样:lambda x,y,z:z*100+x-y。我的列表也是这样:lst=[4,5,6]。问题是如何将列表中的特定项传递到lambda函数中(只知道项的数量和参数的数量是相同的)。如果没有办法的话。。好的我只是想确定:)是不是
my_lambda_func(*lst)
你在寻找什么?酷,我认为“*”符号只允许将许多参数传递给函数,但它实际上可以“解压”列表并将其项作为参数提供服务。谢谢!成功了。