我对Python还不太熟悉,并且在练习基础知识。我使用lambda表达式获取两个参数并对它们执行平方运算(例如:var ** 2
)。这两个参数来自zip(list1, list2)
。我要为此得到TypeError
。我试着寻找解决办法,但没有找到。我甚至尝试过在括号中写lambda参数(例如:lambda (v1,v2):
),但结果抛出了SyntaxError
。在
下面是python代码:
list1 = [1,2,3,4]
list2 = [5,6,7,8]
print ( list(map(lambda v1,v2: (v1**2, v2**2), list(zip(list1, list2)))) )
错误:
^{pr2}$
在您的打印中,
map
将在元组列表上调用lambda函数(因为list(zip(list1, list2))
生成一个元组列表)。在例如,您可以:
lambda函数将使用元组(v1,v2)作为参数,而不是两个参数。在
您将一个列表作为},即一个参数,即使它是元组。你可能想要的是:
map
的参数,因此map
一次使用列表中的一个元素调用您的{这样列表中的项作为唯一参数传递给},并将列表作为单独的参数直接传递给
^{pr2}$lambda
。 如果坚持使用两个参数lambda
,则丢弃{map
:相关问题 更多 >
编程相关推荐