注意!python中字典排序之后生成的是表格

原错误

误以为newlist = sorted(allgrade.items(), key=lambda x: x[-1][-1], reverse=True)语句生成的是字典, 导致错误。

实际情况

a = {'a': [1, 2, 3], 'b': [23, 4, 6], 'c': [3, 54, 5]}
b = sorted(a.items(), key=lambda x: x[-1])
print(b)

这段代码会生成如下结果
[(‘a’, [1, 2, 3]), (‘c’, [3, 54, 5]), (‘b’, [23, 4, 6])]
故最后结果是一个列表

程序代码

allgrade = {}
for i in range(5):
    thesum = 0
    average = 0
    name = input('Enter your name:')
    onegrade = []
    for j in range(3):
        thegrade = eval(input('Enter one grade:'))
        onegrade.append(thegrade)
    allgrade[name] = onegrade
    thesum = sum(allgrade[name])
    average = thesum / 3
    allgrade[name].append(thesum)
    print("Student{0}'s sum grade is: {1}".format(i + 1, thesum))
    print("Student{0}'s average grade is: {1}".format(i + 1, average))
    newlist = sorted(allgrade.items(), key=lambda x: x[-1][-1], reverse=True)
for k in range(5):
    print("{0}:{1} gets {2} points\
    ".format(k + 1, newlist[k][0], newlist[k][-1][-1]))
    原文作者:1ffd928ab369
    原文地址: https://www.jianshu.com/p/d56c9460335e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞