我目前正在做一个 hackerrank 问题。
目标是找到前 n 个斐波那契数的立方体。用户输入n。例如,如果用户输入 5,则输出应该是 [0, 1, 1, 8, 27],因为前五个斐波那契数是 [0, 1, 1, 2, 3]。
我写了下面的代码:
cube = lambda x: x**3 # complete the lambda function
def fibonacci(n):
# return a list of fibonacci numbers
initiallist = []
for i in range(n):
if i < 2:
initiallist += [i]
else:
initiallist += [initiallist[-1] + initiallist[-2]]
return initiallist
我得到了以下代码(我无法编辑):
if __name__ == '__main__':
n = int(input())
print(map(cube, fibonacci(n)))
问题是我的代码没有通过测试用例,因为它返回的是 map 对象而不是列表。我如何确保它返回一个列表?
请您参考如下方法:
只需添加list(),
if __name__ == '__main__':
n = int(input())
print(list(map(cube, fibonacci(n))))
我取消了我的评论,因为这是映射对象的解决方案,我不认为你可以在实际调用之前修改它。正如 Ewoud 所说,map 函数在 python3 和 python2 中的行为不同。
