以下代码显示学生人数和学生分数。多维列表排序[多列]
def main():
answers = [
['A', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D'],
['D', 'B', 'A', 'B', 'C', 'A', 'E', 'E', 'A', 'D'],
['E', 'D', 'D', 'A', 'C', 'B', 'E', 'E', 'A', 'D'],
['C', 'B', 'A', 'E', 'D', 'C', 'E', 'E', 'A', 'D'],
['A', 'B', 'D', 'C', 'C', 'D', 'E', 'E', 'A', 'D'],
['B', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D'],
['B', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D'],
['E', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D']]
keys = ['D', 'B', 'D', 'C', 'C', 'D', 'A', 'E', 'A', 'D']
for i in range(len(answers)):
correctCount = 0
for j in range(len(answers[i])):
if answers[i][j] == keys[j]:
correctCount += 1
results = [i,correctCount]
print(results, end = "") # this line used to be - print("Student", i, "'s correct count is", correctCount)
main()
我的目标是将学生分数从低到高排序,而不会混淆与该分数相关的学生数。我试图使用排序功能对这些形式:
results1 = sorted(results, key = lambda x: x[1])
results.sort(key = itemgetter(1))
results.sort()
使用所有这三个尝试我依然无法使其工作的。有任何想法吗?
预期输出:
[3, 4]
[2, 5]
[1, 6]
[0, 7]
[5, 7]
[6, 7]
[7, 7]
[4, 8]
第一列是学生#,第二列是分数。
你是什么预期产出?你知道每次你的意思是'results.append([i,correctCount])'覆盖'结果''。 – AChampion
编辑的问题包括预期输出。 –