0
我在這裏做一個簡單的練習,但我不能完全得到我想要的結果。我有2個簡單的函數,第二個函數run
是跳過compute
函數,如果提供的鍵和值與前一個執行print函數時相同,但不知道如何更新結果,則直接給出a+b
的結果到詞典x
。跳過數學計算如果鍵,值和結果已經存儲在字典使用Python
下面是我的代碼:
import time
def compute(a,b):
time.sleep(1)
return a+b
x = {}
def run(a,b):
if a & b in x:
return x
else:
x.update({a:b})
return compute(a,b)
print(run(5,7))
print(run(5,7))
print(run(2,5))
print(run(2,4))
print(run(5,7))
print(run(2,4))
,結果我得到的是:
12
{5: 7}
7
6
{5: 7, 2: 4}
6
,但我想要的是:
12
12
7
6
12
6
任何幫助深表感謝感謝。
你意識到你從來沒有實際記憶*結果*,對嗎? –
你不想'返回x'你想從x返回那個元素。試試'return x [a]'。您還想在存儲之前「計算」。請參閱@ blue_note的回答 – Cfreak
是的,我意識到這一點,因爲我不知道如何記住它,以前我所做的是試圖記住它在一個參數'c = compute(a,b)'顯然是錯誤的,我'在編程中非常新,所以對於菜鳥問題很抱歉 –