在 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 中以正确的方式解压值?
元组拆包的删除在中讨论PEP 3113 https://www.python.org/dev/peps/pep-3113/。基本上,你不能在 Python 3 中做到这一点。在标题下过渡计划 https://www.python.org/dev/peps/pep-3113/#transition-plan,您会看到执行此操作的“建议”方法是您的最终代码块:
lambda x_y: x_y[0] + x_y[1]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)