2010-03-31 79 views
2

我写了下面的功能。它不应该返回空字典。该代码在没有功能的命令行上工作。不过,我看不出有什么不对的功能,所以我必须要吸引你的集体智慧。蟒蛇dict.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 

它返回一个空字典{}在那里我希望{ '约翰':0, '美宝':0}。

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

+1

如果你喜欢一个答案,请务必将其标记为接受的答案。它给人的响应声誉分,并让其他人知道你是不是在找一个更好的答案。 – 2010-04-01 01:29:21

回答

3

您需要的函数体崩

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

fromkeys是一个类的方法,因而不会影响任何情况下,可能在被称为(最好调用它的类 - 这是更清晰!),而是回报新字典它建立......而这正是你想要回,到非常字典 - !)

11

fromkeys是一个类的方法,这意味着

newusr.fromkeys(userlist, 0) 

是完全一样的调用

dict.fromkeys(userlist, 0) 

这两者回报在用户列表中的键的字典。你需要把它分配给某些东西。试试这个。

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

谢谢,这真的很快。类和实例化对我来说似乎仍然有点陌生。 – slooow 2010-04-01 00:09:36

+1

@slooow:你应该接受这个答案,如果它帮助你(打勾的问题,旁边的绿色对勾)。 – 2010-04-01 10:04:22

2

它应该是:

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

documentation

fromkeys()类方法回报一个新的字典。