python dict.fromkeys()返回空值

python dict.fromkeys()返回空值,python,dictionary,fromkeys,Python,Dictionary,Fromkeys,我编写了以下函数。它在不应该返回空字典时返回空字典。该代码在命令行上工作,没有函数。但是我看不出这个函数有什么问题,所以我不得不求助于你们的集体智慧 def enter_users_into_dict(userlist): newusr = {} newusr.fromkeys(userlist, 0) return newusr ul = ['john', 'mabel'] nd = enter_users_into_dict(ul) print nd 它返回一个空

我编写了以下函数。它在不应该返回空字典时返回空字典。该代码在命令行上工作,没有函数。但是我看不出这个函数有什么问题,所以我不得不求助于你们的集体智慧

def enter_users_into_dict(userlist):
    newusr = {}
    newusr.fromkeys(userlist, 0)
    return newusr

ul = ['john', 'mabel']
nd = enter_users_into_dict(ul)
print nd
它返回一个空的dict{},其中我期望{'john':0,'mabel':0}


这可能非常简单,但我看不到解决方案。

您需要将函数体折叠到

def enter_users_into_dict(userlist):
    return dict.fromkeys(userlist, 0)

fromkeys
是一个类方法,因此不会影响它可能被调用的任何实例(最好在类上调用它——这更清楚!),而是返回它构建的新字典。。。而这正是你想要返回的字典

fromkeys是一个类方法,意思是

newusr.fromkeys(userlist, 0)
和打电话完全一样

dict.fromkeys(userlist, 0)
两者都返回userlist中键的字典。你需要把它分配给某些东西。试试这个

newusr = dict.fromkeys(userlist, 0)
return newusr
应该是:

def enter_users_into_dict(userlist):
    return dict.fromkeys(userlist, 0)
从:

fromkeys()
是一个类方法,它返回一个新字典


谢谢,真的很快。类和实例化对我来说似乎还是有点陌生。@Sloow:如果这个答案对你有帮助,你应该接受它(在问题旁边勾选绿色复选标记)。如果你喜欢答案,一定要将它标记为已接受的答案。它会给响应者声誉评分,并让其他人知道你不是在寻找更好的答案。