我有一本当前的字典grade_lists
,其中以学生姓名为键,并以成绩列表作为值对
{'Dave':[100,95,95]}
我需要在新词典中为成绩值分配作业名称;在这种情况下,['Exam 1', 'Exam 2', 'Exam 3']
这样
new_dict['Dave']['Exam 2'] == 95
答案 0 :(得分:0)
您可以使用zip
来匹配作业名称和成绩值,从而进行嵌套的dict理解。
grade_lists = {'Dave': [100, 95, 95]}
names = ['Exam 1', 'Exam 2', 'Exam 3']
new_dict = {k: {n: g for n, g in zip(names, v)} for k, v in grade_lists.items()}
print(new_dict)
输出:
{'Dave': {'Exam 1': 100, 'Exam 2': 95, 'Exam 3': 95}}
答案 1 :(得分:0)
@wjandrea答案的缩写:
new_d = {k: {x: v for x, v in zip(lst, *d.values())} for k in d}
其中d
是您现有的词典,lst
是考试名称列表。
示例:
d = {'Dave':[100,95,95]}
lst = ['Exam 1', 'Exam 2', 'Exam 3']
new_d = {k: {x: v for x, v in zip(lst, *d.values())} for k in d}
# {'Dave': {'Exam 1': 100, 'Exam 2': 95, 'Exam 3': 95}}