提问人:slooow 提问时间:4/1/2010 更新时间:4/1/2010 访问量:1889
python dict.fromkeys() 返回空
python dict.fromkeys() returns empty
问:
我写了以下函数。它返回一个空字典,而它不应该返回。该代码在命令行上工作,没有函数。但是,我看不出该功能有什么问题,因此我必须诉诸您的集体智慧。
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}。
这可能很简单,但我没有看到解决方案。
答:
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()
是返回新字典的类方法。
评论