美文网首页
注意!python中字典排序之后生成的是表格

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

作者: 虚无一代 | 来源:发表于2017-12-13 23:11 被阅读0次

    原错误

    误以为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]))
    

    相关文章

      网友评论

          本文标题:注意!python中字典排序之后生成的是表格

          本文链接:https://www.haomeiwen.com/subject/lultwxtx.html