我想创建一个存储数学函数名称、输入(单个数字)和结果的字典。
结构应该类似于cache = {procedure: {input:result}}
i.e.
cache = {'factorial': {4:24, 10:3628800, 20:2432902008176640000},
'square': {2:4, 5:25, 10:100}
'sum': {3:6, 5:10, 7:14}}
def factorial(n):
#print "Running factorial"
result = 1
for i in range(2, n + 1):
result = result * i
return result
def square(n):
result = n ^ 2
return result
def sum(n):
result = n * 2
return result
我不希望预先创建缓存字典,因为它可能不知道它将为哪些数学函数存储值。然后我想创建一个名为 cached_execution 的函数,该函数将首先检查缓存是否已为输入调用该函数,如果是,则返回存储为 input:result 对的值的内容。
如果不是,则计算操作,将其存储在缓存中并返回值。如果该函数存在于缓存中,则应在其下创建另一个键/值对。如果没有,则为函数名称创建一个新条目,并将输入/结果的键/值存储在其下。
cached_execution 的结构很简单,但我不知道如何附加到字典。似乎 append 不是字典结构允许的方法。我尝试了各种事情但没有成功。
感谢帮助。