从函数返回字典

2024-05-15 21:53:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经搜索stackoverflow几个小时了,却没有找到解决问题的方法。我有一个函数,我希望输出是一个字典,但我只能让它打印第一个键+值。出于某种原因,“屈服”声明不起作用,所以我想知道是否有其他方法可以做到这一点。

这是我的代码:

def myfunc(somedict):
    x = list(somedict.values())      
    for i in x:
        data = dict_from_otherfunc(i)
        mylist = [float(max(data.values()))]
        mydict = dict(zip([i], mylist))
        return mydict

这将返回如下所示的词典:

{'abc': 1}

当我把打印而不是返回时,我得到了所需的输出。如何使此代码返回包含所有值而不是仅包含一个值的字典?

编辑: 尝试在for循环外返回,这只返回我的字典的最后一个值。


Tags: 方法函数代码fordata字典stackoverflowdict
1条回答
网友
1楼 · 发布于 2024-05-15 21:53:31

编辑:如果我理解正确,问题在于for循环本身。您在每次迭代中都设置mydict的值,所以它当然只返回其中一个。

现在,我还不能完全确定我是否理解你的想法,但如果我明白了,我建议你试试这样的方法:

def myfunc(somedict):
    x = list(somedict.values())
    mylist = [float(max(dict_from_otherfunc(i).values()) for i in x] # You can split this into two lines to make it more readable, I suppose
    mydict = dict(zip(x, mylist)
    return mydict

这也会从重命名变量中受益,但我假设这只是一个例子。

相关问题 更多 >