2024-09-30 08:19:20 发布
网友
我试图在python3中使用一个生动的例子,但是在这一行中得到了一个语法错误:
return map(lambda (x, y, an): (x, y), cornersWithAngles)
我已经读到在python3中不允许使用括号来解压lambda中的参数,但是我不知道如何调整代码来解决这个问题。在
以下是完整的代码(错误在第16行):
您要做的(在lambda中的参数解包)在python2中有效,但在python3中不再有效。在
lambda
Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15) >>> lst = [(1,2,3), (4,5,6), (7,8,9)] >>> map(lambda (a,b,c): (a,b), lst) [(1, 2), (4, 5), (7, 8)] Python 3.6.7 (default, Oct 22 2018, 11:32:17) >>> lst = [(1,2,3), (4,5,6), (7,8,9)] >>> map(lambda (a,b,c): (a,b), lst) File "<stdin>", line 1 map(lambda (a,b,c): (a,b), lst) ^ SyntaxError: invalid syntax
不过,你还是可以做一些事情。在
就个人而言,我会使用列表理解或生成器表达式。 另外,请记住,在python3中,map是一个生成器,而不是一个列表,因此在使用map时,您可能必须将结果包装成一个list,这取决于您想用它做什么。在
map
list
只需使用x作为元组,这可能会有帮助:
x
map(lambda x: (x[0], x[1]), cornerWithEdges)
您要做的(在
lambda
中的参数解包)在python2中有效,但在python3中不再有效。在不过,你还是可以做一些事情。在
^{pr2}$就个人而言,我会使用列表理解或生成器表达式。 另外,请记住,在python3中,
map
是一个生成器,而不是一个列表,因此在使用map
时,您可能必须将结果包装成一个list
,这取决于您想用它做什么。在只需使用
x
作为元组,这可能会有帮助:相关问题 更多 >
编程相关推荐