如何将未指定数量的参数传递给lambda? (在Python中)

时间:2014-12-10 22:17:09

标签: python lambda arguments

假设我们有一个函数 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

1 个答案:

答案 0 :(得分:1)

您可以使用lambda:

执行与* arg和** kwargs类似的操作
>>> a = lambda *args, **kwargs: (args, kwargs)
>>> a(1, 2, a="a", b="b")
((1, 2), {'a': 'a', 'b': 'b'})