2011-12-18 160 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

相关问题