Python 映射与lambda函数
我现在正在做一个黑客银行的问题 目标是找到第一个Python 映射与lambda函数,python,Python,我现在正在做一个黑客银行的问题 目标是找到第一个nFibonacci数的立方体。用户输入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 = [] f
n
Fibonacci数的立方体。用户输入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
问题是,我的代码没有通过测试用例,因为它返回一个映射对象而不是列表。如何确保它返回列表?只需添加list()
我取消删除了我的评论,因为这是映射对象的解决方案,我认为在实际调用之前您无法修改它。正如Ewood所说,map
函数在python3和python2中的作用不同。只需添加list()
我取消删除了我的评论,因为这是映射对象的解决方案,我认为在实际调用之前您无法修改它。正如Ewood所说,map
函数在python3和python2中的作用不同。您只需在其周围放置列表(…),因此
print(list(map(cube, fibonacci(n))))
(我还没有测试您的其余代码)
编辑:如果不想更改主函数,则必须更改print或map函数或使用python 2。您只需在其周围放置list(…),以便
print(list(map(cube, fibonacci(n))))
(我还没有测试您的其余代码)
编辑:如果不想更改主函数,则必须更改打印或映射函数或使用python 2。如果无法编辑主函数,则使用Python2.X而不是Python3.X。在Python3.x中,map()函数返回迭代器
这里有[链接]如果您无法编辑main函数,请使用Python2.X而不是Python3.X。在Python3.x中,map()函数返回迭代器
这里有[一个链接]这会给你更多你需要的。为了以防万一,我添加了一些额外的位,比如循环和输入验证。希望这有帮助 通式 F(n)=F(n-1)+F(n-2) 获取用户输入
def get_user_input():
while True:
try:
nums_in_list = int(input("Enter the amout of numbers you want in the fibonacci list: "))
if nums_in_list < 1:
print("Please enter a number greater than 0.")
continue
return nums_in_list
except ValueError:
print ("Please enter an integer.")
循环程序的额外外接程序
主要部分:
调用上面定义的函数
显示输出
if __name__ == '__main__':
while True:
original = genterate_list(get_user_input())
print("Original Fabonacci")
for x in original:
print(x)
cube_funtion = lambda value : value ** 3
cube_result = map(cube_funtion, original)
print("Cubed Values")
list(map(print, cube_result))
if loop_program() == "N":
break
这会给你比你需要的更多。为了以防万一,我添加了一些额外的位,比如循环和输入验证。希望这有帮助 通式 F(n)=F(n-1)+F(n-2) 获取用户输入
def get_user_input():
while True:
try:
nums_in_list = int(input("Enter the amout of numbers you want in the fibonacci list: "))
if nums_in_list < 1:
print("Please enter a number greater than 0.")
continue
return nums_in_list
except ValueError:
print ("Please enter an integer.")
循环程序的额外外接程序
主要部分:
调用上面定义的函数
显示输出
if __name__ == '__main__':
while True:
original = genterate_list(get_user_input())
print("Original Fabonacci")
for x in original:
print(x)
cube_funtion = lambda value : value ** 3
cube_result = map(cube_funtion, original)
print("Cubed Values")
list(map(print, cube_result))
if loop_program() == "N":
break
我刚刚运行了这个,它在HackerRank上成功运行 { 多维数据集=lambda x:x**3#完成lambda函数
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(list(map(cube, fibonacci(n))))
def fibonacci(n):
#返回斐波那契数的列表
初始列表=[]
对于范围(n)中的i:
如果i<2:
初始列表+=[i]
其他:
初始列表+=[初始列表[-1]+初始列表[-2]]
返回初始列表
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
n=int(输入())
打印(列表(映射(立方体,斐波那契(n)))
}我刚刚运行了这个程序,它在HackerRank上运行成功 { 多维数据集=lambda x:x**3#完成lambda函数
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(list(map(cube, fibonacci(n))))
def fibonacci(n):
#返回斐波那契数的列表
初始列表=[]
对于范围(n)中的i:
如果i<2:
初始列表+=[i]
其他:
初始列表+=[初始列表[-1]+初始列表[-2]]
返回初始列表
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
n=int(输入())
打印(列表(映射(立方体,斐波那契(n)))
}再次,用户无法编辑该行代码。再次,用户无法编辑该行代码。如果您无法在
\uuuuu main\uuuuuuu
中更改代码,则只能使用Python 2
而不是Python 3
来获得正确的结果。(或者覆盖函数map
)它是如何与Python 2一起工作的?在Python 2中,map函数返回一个列表而不是一个map对象,因此应该按原样工作。非常感谢!这说明了如果不能在\uuuu main\uuuu
中更改代码,那么只能使用python2
而不是python3
来获得正确的结果。(或者覆盖函数map
)它是如何与Python 2一起工作的?在Python 2中,map函数返回一个列表而不是一个map对象,因此应该按原样工作。非常感谢!这澄清了问题