我写了以下功能。它不应该返回一个空字典。代码在没有功能的命令行上工作。但是我看不出这个功能有什么问题,所以我必须诉诸你的集体智慧。
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}。
可能非常简单,但我没有看到解决方案。
答案 0 :(得分:11)
fromkeys是一种类方法,意思是
newusr.fromkeys(userlist, 0)
与调用
完全相同dict.fromkeys(userlist, 0)
两者返回用户列表中键的字典。你需要将它分配给某些东西。试试这个。
newusr = dict.fromkeys(userlist, 0)
return newusr
答案 1 :(得分:3)
您需要将函数的主体折叠为
def enter_users_into_dict(userlist):
return dict.fromkeys(userlist, 0)
fromkeys
是一个类方法,因此不会影响它可能被调用的任何实例(最好在类上调用它 - 这更清楚!),而不是返回它建立的新词典......这就是你想要返回的词典! - )
答案 2 :(得分:2)
应该是:
def enter_users_into_dict(userlist):
return dict.fromkeys(userlist, 0)
fromkeys()
是类方法,返回新词典。