首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对测验完成3次后得到的分数进行排序?

如何对测验完成3次后得到的分数进行排序?
EN

Stack Overflow用户
提问于 2016-03-01 03:52:07
回答 1查看 50关注 0票数 0

当用户参加此测验三次时,我如何对他们获得的分数进行排序,从最高分到最低分?另外,当代码运行时,我如何按字母顺序对用户名进行排序,并将其分数放在其名称旁边?

代码语言:javascript
复制
school_data = []
for x in range (0,3):
    quiz = dict()
    print ("Enter your name")
    quiz['name'] = input()
    print ("what class")
    quiz['class_code'] = input()

    print("1. 9+10=")
    answer = input()
    answer = int(answer)

    if answer == 19:
        print("correct")
        score = score + 1
    else:
        print("wrong") 
    print("2. 16+40=")
    answer = input()
    answer = int(answer)
    if answer == 56:
        print("correct")
        score = score + 1
    else:
        print("wrong")

    print("3. 5+21=")
    answer = input()
    answer = int(answer) 
    if answer == 26:
        print("correct")
        score = score + 1
    else:
        print("wrong")

    print("4. 5-6=")
    answer = input()
    answer = int(answer)
    if answer == -1:
        print("correct")
        score = score + 1
    else:
        print("wrong")

    print("5. 21-9=")
    answer = input()
    answer = int(answer)

    if answer == 12:
        print("correct")
        score = score + 1
    else:
        print("wrong")
    quiz['score'] = score
    school_data.append(quiz)
EN

回答 1

Stack Overflow用户

发布于 2016-03-01 04:45:39

您可以使用以下命令按分数对school_data列表进行排序

代码语言:javascript
复制
sorted_school_data = sorted(school_data, key=lambda k: k['score'])

默认情况下,首先对分数最低的进行排序,所以从最高到最低只需这样做

代码语言:javascript
复制
sorted_school_data = sorted(school_data, key=lambda k: k['score'])[::-1]

要打印分数和姓名,您可以执行以下操作

代码语言:javascript
复制
for i in sorted(school_data, key=lambda k: k['name']):
    print('%s:%s' %(i['name'], i['score']))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35708378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档