2011-12-18 157 views
-8

如果我有一個來自另一個函數的字典,我該如何在新函數中傳遞字典?例如,需要另一個函數的字典

從另一個函數,我有這樣的元組,如('falseName', 'realName', positionOfMistake),例如。 ('Milter', 'Miller', 4)。我有一個功能,讓這樣一本字典:

D={realName:{falseName:[positionOfMistake], falseName:[positionOfMistake]...}, 
    realName:{falseName:[positionOfMistake]...}...} 

def addNameToDictionary(d, tup): 
    if not d.has_key(tup[0]): 
     d[tup[0]] = {} 
    d[tup[0]][tup[1]] = [tup[2]] 

現在我需要編寫一個函數,falseName的列表,並返回:

realName: 
    falseName 
    falseName 
realName:... 

我的問題是如何調用從字典函數addNameToDictionary,到一個新的函數?

我曾嘗試以下:

def Names(nameList): 
    D=addNameToDictionary(d, tup) 
    print D 

,但我得到:

NameError: global name 'd' is not defined 

有人嗎?

+2

爲什麼不把dict傳遞給新函數,就像在* addNameToDictionary *中做的那樣? – XORcist 2011-12-18 12:16:27

+0

你是什麼意思? – 2011-12-18 12:21:21

+0

你是什麼意思「調用字典」,你爲什麼不只是將'dict'作爲參數傳遞給新函數? – moooeeeep 2011-12-18 12:23:24

回答

0
def your_new_function(d, falseNames): 
    # ... get data from d 
    return {realname:(falseName1, falseName2)} 
+0

但該函數應該包含falseName的列表,而不是falseNames和字典。 – 2011-12-18 12:32:56

+0

那麼,* D *是代碼中的全局變量吧?你可以在你的新功能中訪問它。 – XORcist 2011-12-18 12:36:14

+0

嗯..我還是不知道該怎麼做?! – 2011-12-18 12:37:58

相關問題