Python 我可以返回一个操作作为带有if…else条件的lambda函数的输出吗?
我试图使用lambda将列表a中大于列表b中相应元素的每个元素的Python 我可以返回一个操作作为带有if…else条件的lambda函数的输出吗?,python,list,if-statement,Python,List,If Statement,我试图使用lambda将列表a中大于列表b中相应元素的每个元素的a_s增加1 >>> a = [4, 5, 8] >>> b = [1, 3, 9] >>> a_s = 0 >>> a_sum = map(lambda x,y: (a_s + 1) if x > y else (a_s + 0), a, b) >>> print (a_sum) <map object at 0x01230890
a_s
增加1
>>> a = [4, 5, 8]
>>> b = [1, 3, 9]
>>> a_s = 0
>>> a_sum = map(lambda x,y: (a_s + 1) if x > y else (a_s + 0), a, b)
>>> print (a_sum)
<map object at 0x01230890>
>a=[4,5,8]
>>>b=[1,3,9]
>>>a_s=0
>>>a_sum=map(λx,y:(a_s+1)如果x>y,否则(a_s+0),a,b)
>>>打印(金额)
我期望的输出是2
,因为列表a
的第0个和第1个元素大于列表b
的第0个和第1个元素。解决方案是:
print (sum(a_sum))
或
你在找
print(sum(a_sum))
吗?你忘了list()
通知那张地图。注意a_
在这里是多余的。你没有修改它,它只会返回0+1
或0+0
…确切地说,我希望在它的list()
化后打印该地图的总和。a_s=sum(1代表x,y在zip中(a,b)如果x>y)
可能是最明智的解决方案。刚刚尝试了你的建议。我要查找的输出是该输出列表的总和。是否可以在不手动添加列表元素的情况下打印总和?@Samyuktha0511检查解决方案,如果需要,请告诉我。我已经更新了解决方案中的“print(sum(a_sum))”谢谢兄弟!!它起作用了
res = list(a_sum)
print (sum(res))