有人告诉我。。从评论到修复我的功能,让它看起来更“干净”。我试过很多次了。。但我不知道如何使用llambda来完成我想做的事情。我的代码有效。。这不是人们对我的要求。你知道吗
下面是我的代码和建议如何修复它。你知道吗
def immutable_fibonacci(position):
#define a lambda instead of def here
def compute_fib (previousSeries, ignore):
newList = previousSeries
if len(newList) < 2: # Do this outside and keep this function focused only on returning a new list with last element being sum of previous two elements
newList.append(1)
else:
first = newList[-1]
second = newList[-2]
newList.append(first+second)
return newList
range=[None]*position
return reduce(compute_fib, range, [])
#Above is too much code. How about something like this:
#next_series = lambda series,_ : (Use these instead of the above line)
#return reduce(next_series, range(position - 2), [1, 1])
任何事都有帮助。。我只是搞不清楚我该如何实施这些建议。你知道吗
这是我尝试的。你知道吗
def immutable_fibonacci(position):
range=[None]*position
next_series = lambda series, _ : series.append(series[-1] + series[-2])
return reduce(next_series, range(position - 2), [1, 1])
append
函数返回None。你需要返回一个更新的数组另外,重命名
range
也没有任何作用。你知道吗这是假设您只为位置>;=2调用函数。通常fib(0)是0,fib(1)是1。你知道吗
相关问题 更多 >
编程相关推荐