Python - 将变量保存为dict的键和值

时间:2015-10-26 22:24:17

标签: python dictionary

我有一个测验,其中class是用户的类(1,2或3),name是用户的名称,score是用户的分数。如果同一用户再次完成测验,则classname将相同,但score会有所不同。

我想要做的是将数据存储为:

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

如果用户在1级,则他的namescore将存储在名为scores_class1的词典中,而不是scores_class2scores_class3格式如上。此外,如果用户已经进行过一次测验,则只需将其分数添加到列表中,而不是创建重复的密钥。

1 个答案:

答案 0 :(得分:0)

你不能使变量名动态,但是你可以从class_num = 2构造一个字符串(不能使用类,保留字)并将该名称用作dict中的键:

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]}})