我正在尝试使用地图和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
我在做什么错了?
答案 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中写了平方数而不是立方体数字