【问题标题】:How to get the dictionary (keys and values) from different function?如何从不同的函数中获取字典(键和值)?
【发布时间】:2018-09-27 03:45:31
【问题描述】:

假设我有一本字典:

def funcA():
    invdict = {{'fruits':{'apple','manggo'}},{'veggies':{'cabbage','cucumber'}},{'drinks:{'juice','coke'}}}
    return(invdict)

我想将字典 invdict 沿其键和值调用到另一个函数

def funcB():
    invdict = funcA()
    return invdict

主要代码是

def funcA()
def funcB()
print(funcA)
print(funcB)

【问题讨论】:

  • 我在这个问题中没有看到问题...?您正在尝试做哪些尚未做的事情?

标签: python python-3.x function dictionary key-value


【解决方案1】:

我已经给你留下了评论,但我想我会把它放在答案中,以便在没有评论限制的情况下更容易阅读。

这里有几个问题。首先,您似乎正在尝试制作列表字典,但您使用的是字典语法(大括号)而不是列表语法(方括号),而不是这样做:

# this is wrong
invdict = {{'fruits':{'apple','manggo'}},{'veggies':{'cabbage','cucumber'}},{'drinks:{'juice','coke'}}}

你应该这样做:

# this is right
invdict = {'fruits': ['apple','mango'], 'veggies': ['cabbage','cucumber'], 'drinks': ['juice','coke']}

您还可以使用一些适当放置的空格来使其更易于阅读:

# easier to read
invdict = {'fruits': ['apple','mango'], 
           'veggies': ['cabbage','cucumber'], 
           'drinks': ['juice','coke']}

现在解决下一个问题。您希望您的函数 funcB 了解 invdict,它目前仅在您的函数 funcB 的命名空间中可用。看起来您正试图从 funcA 返回 invdict 但您使用的 return 不正确。看起来您还想打印这些函数的返回值,但同样,您的语法不正确(您正在打印函数实例而不是调用它并打印它的返回值。)您可能想要做的是:

def funcA():
    # correct syntax for a dictionary of lists, with whitespace for readability
    invdict = {'fruits': ['apple','mango'], 
               'veggies': ['cabbage','cucumber'], 
               'drinks': ['juice','coke']}
    # correct usage of return statement
    return invdict

def funcB():
    invdict = funcA()
    return invdict 

# correct way to call functions for their return values
print(funcA())
print(funcB())

请记住,要调用函数,您必须执行 function_name()。如果函数接受参数,则参数放在括号之间。如果它不带参数,则只需使用“()”。如果您只输入函数名称,则传递的是函数定义本身,而不是执行该函数(这有不同的用途,但那是另一回事了。)

【讨论】:

  • 问题是,当我尝试在 funcA 中向用户询问字典的输入,并返回字典项并在 funcB 中调用它时,它不起作用。也许我应该发布我的真实代码。对不起。我只是 Python 的新手。也许我应该稍后删除这个问题。
  • 我无法在 90 分钟内发帖。我如何访问聊天?对不起,我是 python 新手,请多多包涵。
  • 尝试将其发布到 pastebin 并在评论中添加一个链接
  • 我现在只是应用您建议的代码...谢谢您的时间。如果您看到代码,我最初在第二个函数中应用调用它但没有工作,所以我尝试在函数外的主代码上调用它,但仍然没有工作。
  • 是的,它工作得很好。它两次向我询问库存,在我第二次输入它们后,它打印它们并要求我按 Enter 键继续。我按下回车,程序退出。你运行的代码和你在 pastebin 上的代码一样吗?
猜你喜欢
  • 2021-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多