我正在尝试将学生姓名与他们在考试中获得的分数相匹配。所以我有2个列表
year3studentslist = ['Dave','Tom','Alan']
year3scorelist = ['17','3','12']
我的课程中发生的事情是学生登录完成测试并获得分数。我如何将学生的姓名与分数相匹配?
答案 0 :(得分:6)
使用zip()
可能是最简单的方法。执行zip(year3studentslist, year3scorelist)
会将元组列表返回为:
[('Dave', '17'), ('Tom', '3'), ('Alan', '12')]
所以只需遍历此列表即可访问元素:
for student, score in zip(year3studentslist, year3scorelist):
print student, score
如果您想按学生姓名访问数据,可以将上述压缩数据转换为字典:
data_dict = {item[0]: item[1] for item in zip(year3studentslist, year3scorelist)}
与
相同data_dict = dict(zip(year3studentslist, year3scorelist))
现在您可以将“Dave”的分数设为data_dict['Dave']
。但请注意,在字典中,键必须是唯一的。在这种情况下,我们选择学生的名字作为关键,在课堂上有两个戴夫的情况下,这不是一个好主意。只有在确定名称是唯一的时才使用字典方法是个好主意
答案 1 :(得分:0)
使用python dicts。
使用字典是您想要做的更好的方法。
>>> Students = {}
>>> Student['Dave'] = 17 # Create the record for Dave
>>> Student['Tom'] = 3 # Create the record for Tom
>>> Student['Alan'] = 17 # Create the record for Alan
>>> Student['Dave'] = 15 # Update record for Dave
>>> print(Students['Dave'])
>>> 15
你想分别获得分数或学生的名字,你可以:
>>> Students.keys()
>>> ['Dave', 'Tom', 'Alan']
>>> Students.values()
>>> [15, 3, 17]
答案 2 :(得分:0)
您可以使用map
或dict
对象:
year3studentslist = ['Dave','Tom','Alan']
year3scorelist = ['17','3','12']
students = {}
for k in range(len(year3studentslist)):
students[year3studentslist[k]] = year3scorelist[k]
print students
#{'Dave': '17', 'Alan': '12', 'Tom': '3'}