python dict.fromkeys() 返回空

python dict.fromkeys() returns empty

提问人:slooow 提问时间:4/1/2010 更新时间:4/1/2010 访问量:1889

问:

我写了以下函数。它返回一个空字典,而它不应该返回。该代码在命令行上工作,没有函数。但是,我看不出该功能有什么问题,因此我必须诉诸您的集体智慧。

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

ul = ['john', 'mabel']
nd = enter_users_into_dict(ul)
print nd

它返回一个空字典 {},我希望 {'john': 0, 'mabel': 0}。

这可能很简单,但我没有看到解决方案。

python 字典 fromkeys

评论

1赞 Jeffrey Harris 4/1/2010
如果您喜欢某个答案,请务必将其标记为已接受的答案。它为响应者提供声誉点,并让其他人知道您不是在寻找更好的答案。

答:

3赞 Alex Martelli 4/1/2010 #1

您需要将函数的主体折叠到

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

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

10赞 Jason R. Coombs 4/1/2010 #2

fromkeys 是一个类方法,意思是

newusr.fromkeys(userlist, 0)

与调用完全相同

dict.fromkeys(userlist, 0)

两者都返回 userlist 中键的字典。您需要将其分配给某些东西。试试这个。

newusr = dict.fromkeys(userlist, 0)
return newusr

评论

0赞 slooow 4/1/2010
谢谢,这真的很快。类和实例化对我来说似乎仍然有点陌生。
1赞 Felix Kling 4/1/2010
@slooow:如果这个答案对你有帮助,你应该接受它(勾选问题旁边的绿色复选标记)。
2赞 Felix Kling 4/1/2010 #3

它应该是:

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

文档中:

fromkeys()返回新字典的类方法