我正在尝试创建一个执行Fibonacci序列的动态函数.它以哈希表开始,该哈希表将值分配给位置然后返回它.但是,如果该位置不在哈希表中,则代码将该值与该位置一起存储在哈希表中.这是代码:
def dyn_fib(n):
memo = {1:0, 2:1}
if n <= 2:
return memo[n]
else:
for n not in memo:
memo[n] = memo[n-2] + memo[n-1]
return memo[n]
Run Code Online (Sandbox Code Playgroud)
我所要做的就是编辑'else'语句以使用哈希表在哈希表中存储新值
memo[n] = memo[n-2] + memo[n-1]
Run Code Online (Sandbox Code Playgroud)
对于尚未在备忘录中列出的任何位置"n",然后循环直到达到"n".我以为我可以用
for n not in memo:
Run Code Online (Sandbox Code Playgroud)
但Geany说有语法错误.我认为这是因为如果n = 5,它需要在5之前计算3和4,但我不确定如何将"对于任何尚未在备忘录中的位置"放入python语句中.有人知道怎么做吗?(我觉得这很简单,但我不会精通Python.)
你通常不能说,for x not in y
因为有无数个对象不在 y中.
对于您的具体情况,我认为这样的事情可能有效:
[x for x in range(0, n) if x not in y]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5677 次 |
最近记录: |