def cube_of(valz):
'''Returns the cube of values'''
if len(valz) == 0:
return 0
else:
new_val = [valz[0] ** 3]
return [new_val] + [cube_of(valz[1:])]
所以我制作这个函数用于演示,它采用名为 valz
的值列表并采用每个值的立方体,然后返回这些立方体的列表。
例如,假设输入是 [-1,2,-3,4,-5]
- 它应该返回 [-1,8,-27,64, -125]
但它返回 [-1, [8, [-27, [64, [-125, 0]]]]]
。
是什么导致了额外的括号?如果我删除代码中的括号,那么它要么给出这些立方体的总和(这是不正确的),要么给出错误(关于将 int
添加到 list
).我尝试对此进行调试,甚至让我的 friend 看了一下,但我们都很困惑。
最佳答案
cube_of(valz[1:])
已经是一个列表。无需将其括在括号中。
return [new_val] + cube_of(valz[1:])
关于python - 在我的函数中用括号混淆了 bug,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39938830/