Python 尝试使用地图和lambdas解决问题
我试图用maps和Lambda解决一个问题,但我从未通过所有测试,就像95%的测试一样 问题是: 给定两个长度均大于等于1的整数数组a、b,如果a中每个元素的平方和严格大于b中每个元素的立方体之和,则创建一个返回true的程序 这是我的代码: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
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不“存储”值。