我目前正在处理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)))
问题是我的代码未能通过测试用例,因为它返回的是地图对象而不是列表。我如何确保它返回列表?
最佳答案
只需添加list()
,
if __name__ == '__main__':
n = int(input())
print(list(map(cube, fibonacci(n))))
我不删除评论,因为这是map对象的解决方案,我认为您不能在实际调用之前对其进行修改。正如Ewoud所说,
map
函数在python3和python2中的行为有所不同。关于python - 映射和lambda函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41785399/