2010-03-31 83 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()類方法回報一個新的字典。