小编典典

lambda参数解压缩错误

python

在Python 2中,此代码是可以的:

f = lambda (m, k): m + k

m = [1,2,3,4]
k = [5,6,7,8]

print(map(f, zip(m, k)))

但是在Python 3中发生以下错误:

f = lambda (m, k): m + k
^
SyntaxError: invalid syntax

如果删除lambda表达式中的括号,则会发生另一个错误:

TypeError: <lambda>() missing 1 required positional argument: 'k'

也可以使用元组,因为单个lambda参数可在Python 3中使用,但尚不清楚(难以阅读):

f = lambda args: args[0] + args[1]

如何在Python 3中以正确的方式解压值?


阅读 135

收藏
2020-12-20

共1个答案

小编典典

PEP
3113中
讨论了删除元组拆包的问题。基本上,您无法在Python
3中执行此操作。在标题 Transition
plan下

,您看到执行此操作的“建议”方法是您的最终代码块:

lambda x_y: x_y[0] + x_y[1]
2020-12-20