【问题标题】:need a dictionary from another function需要来自另一个函数的字典
【发布时间】:2012-01-23 00:12:22
【问题描述】:

如果我有来自另一个函数的字典,如何在新函数中传递字典? 例如。

从另一个函数,我有这样的元组('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

有人吗?

【问题讨论】:

  • 为什么不像在 addNameToDictionary 中那样将 dict 传递给新函数?
  • “调用字典”是什么意思,为什么不直接将dict 作为参数传递给新函数?
  • 好吧,d 不在您的代码中。你所拥有的只是(大写)D。更重要的是,您不会从 addNameToDictionary 中返回任何内容。
  • 这里是教程列表。我建议您选择一个并完成它:wiki.python.org/moin/BeginnersGuide/NonProgrammers.
  • 您已经问过stackoverflow.com/questions/8550912/… 并得到了很多帮助。在提出更多问题之前,您可能需要阅读一些编程教程。

标签: python dictionary


【解决方案1】:
def your_new_function(d, falseNames):
    # ... get data from d
    return {realname:(falseName1, falseName2)}

【讨论】:

  • 但该函数应该采用 falseName 的列表,而不是 falseNames 和 dict。
  • 嗯,D 是您代码中的全局变量,对吧?您可以在新函数中访问它。
  • 嗯..我还是不知道怎么做?!
猜你喜欢
  • 2021-07-27
  • 1970-01-01
  • 1970-01-01
  • 2019-09-24
  • 1970-01-01
  • 2021-06-14
  • 2021-07-07
  • 2013-10-18
  • 2013-03-08
相关资源
最近更新 更多