Python 尝试使用地图和lambdas解决问题

Python 尝试使用地图和lambdas解决问题,python,arrays,list,lambda,Python,Arrays,List,Lambda,我试图用maps和Lambda解决一个问题,但我从未通过所有测试,就像95%的测试一样 问题是: 给定两个长度均大于等于1的整数数组a、b,如果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

我试图用maps和Lambda解决一个问题,但我从未通过所有测试,就像95%的测试一样

问题是:

给定两个长度均大于等于1的整数数组a、b,如果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
我做错了什么?

应该是:

return sum(map(lambda num: num**2, a)) > sum(map(lambda num: num**3, b))
您需要
b
中的元素立方体。此外,无需将
map
的结果转换为列表,
sum
可以按原样对其进行处理。在这里,如果您不需要使用
,只需返回比较结果即可。

它应该是:

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

您需要
b
中的元素立方体。此外,无需将
map
的结果转换为列表,
sum
可以按原样对其进行处理。你不需要在这里使用
如果
,只需返回比较结果。

无需担心,我看到了问题,我在第二个lambda中写了平方数而不是立方体数

无需担心,我看到了问题,我在第二个lambda中写了平方数而不是立方体数

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提供,不会打印任何内容,因为返回值只存储一个值。必须调用打印。请尝试这个if语句。这对我有用

类数组_疯狂([4,2],[5])

上面的绿色勾选答案由lopez提供,不会打印任何内容,因为返回值只存储一个值。必须调用打印。请尝试这个if语句。这对我有用


像数组疯狂([4,2],[5])

你需要将
b
中的元素
cube
num**3
作为旁白,不要做
sum(list(map(…))
,这会破坏
map
的节省空间特性,只要做
sum(map(…)
)。还有一个风格点,但是如果:return True else:return False应该是
return
你需要
cube
b
中的元素:
num**3
作为旁白,不要做
sum(list(map(…)
,这会破坏
map
的空间效率,只需做
sum(map(…)
)。还有一个风格点,但是
if:return-True-else:return-False
应该是
return
这是个糟糕的建议。编写函数时,通常不应打印结果,最好返回一个值,让调用方决定是否打印。Return没有“存储”值。这是错误的建议。编写函数时,通常不应打印结果,最好返回一个值,让调用方决定是否打印。Return不“存储”值。