我试图将此列表理解代码转换为map和lambda代码。
>>>list1 = [1,2,3]
>>>list2 = [10,20,30]
>>>print([m+n for m,n in zip(list1, list2)])
[11, 22, 33]
以下代码是我尝试过的,但它显示了TypeError
>>>print(list(map(lambda m,n:m+n, zip(list1, list2))))
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: <lambda>() missing 1 required positional argument: 'n'
我读到列表理解和labda函数是可互换的。请指出我的错误!
答案 0 :(得分:2)
lambda
只获得一个参数,它是zip
的一个元组,你需要解压缩自己:
>>> list1 = [1,2,3]
>>> list2 = [10,20,30]
>>> list(map(lambda x: x[0]+x[1], zip(list1, list2)))
[11, 22, 33]