尝试解决地图和Lambda问题

时间:2020-04-04 21:14:28

标签: python arrays list lambda

我正在尝试使用地图和lambda解决问题,但我从未通过所有测试,就像只有95%的测试一样。

问题是:

“给出两个整数数组a,b,它们的长度均大于等于1,如果a中每个元素的平方和严格大于b中每个元素的立方和,则创建一个返回true的程序。”

这是我的代码:

def array_madness(a,b):
    if sum(list(map(lambda num: num**2, a))) > sum(list(map(lambda num: num**2, b))):
        return True
    return False

我在做什么错了?

3 个答案:

答案 0 :(得分:3)

应该是:

return sum(map(lambda num: num**2, a)) > sum(map(lambda num: num**3, b))

系统会要求您提供b中元素的 cubes 。另外,也不需要将map的结果转换为列表,sum可以很好地工作。而且您无需在此处使用if,只需返回比较结果即可。

答案 1 :(得分:1)

def array_madness(a,b):
if sum(list(map(lambda num: num**2, a))) > sum(list(map(lambda num: num**2, b))):
    print (True)
else:
    print (False)

在lopez的绿色对勾答案上方,不会显示任何内容,因为return只存储一个值。打印必须被调用。请尝试此if语句。它对我有用。

像array_madness([4,2],[5])

答案 2 :(得分:0)

没关系,我看到了问题,我在第二个lambda中写了平方数而不是立方体数字