假设我们有一个函数 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
答案 0 :(得分:1)
您可以使用lambda:
执行与* arg和** kwargs类似的操作>>> a = lambda *args, **kwargs: (args, kwargs)
>>> a(1, 2, a="a", b="b")
((1, 2), {'a': 'a', 'b': 'b'})