2015-10-26 46 views
-2

我有一個測驗,其中class是用戶的類(1,2或3),name是用戶的名稱和score是用戶的分數。如果同一用戶再次完成測驗,則classname將保持不變,但score會有所不同。Python - 保存變量作爲鍵和值的字典

我想要做的是數據存儲爲:

scores_class1 = { 
    'myname': [5, 4, 5, 10, 9], 
    'otherperson': [10], 
} 

如果用戶是在1班,他namescore將被存儲在格式稱爲scores_class1代替scores_class2scores_class3字典以上。另外,如果用戶已經參加過一次測驗,則只需將他的分數添加到列表中,而不是創建重複密鑰。

+5

...你有問題嗎?考慮到這與GCSE已經出現一年的課程相同,你如何做出實際努力來自己做,並在不成功的情況下與老師交談? – jonrsharpe

+0

我的問題是如何做到上述。我的計算機老師是一位不懂如何編寫代碼的ICT老師,所以我們基本上都在教自己 – Aweys

+0

那麼你的問題對於SO來說太寬泛了;這不是教程服務。 – jonrsharpe

回答

0

你不能讓一個變量名的動態,但是你可以從你的class_num構造字符串= 2(不能使用類,保留字),並用該名稱作爲在字典的關鍵:

from collections import defaultdict 

classes = defaultdict(dict) 
class_num = 2 
classes['scores_class%s' % class_num]['myname'] = [5, 4, 5, 10, 9] 
classes['scores_class%s' % class_num]['otherperson'] = [10] 

結果將是:

defaultdict(<type 'dict'>, {'scores_class2': {'myname': [5, 4, 5, 10, 9], 'otherperson': [10]}})