我想創建一個存儲數學函數名稱,輸入(單個數字)和結果的字典。python:添加/添加動態鍵值:動態詞典中的值對
結構應該是這樣的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不是字典結構允許的方法。我嘗試了各種不成功的事情。
欣賞幫助。
附註:'n^2'不給你方塊,但是n XOR 2。你想'n ** 2'。 – DSM 2012-07-14 16:58:22
你有什麼嘗試?你可以編輯添加你的代碼並指出問題出在哪裏? – 2012-07-14 17:08:30
「...我無法弄清楚如何追加到字典中,似乎append不是字典結構允許的方法。」你不會追加到字典中,而是設置'key:value'對。如果你有一個字典'd'並且想要設置'4:24'對,你可以'd [4] = 24'。 – 2012-07-14 17:08:54