Python 3.x 我们怎样才能得到这个输出?

Python 3.x 我们怎样才能得到这个输出?,python-3.x,list,loops,for-loop,nested-lists,Python 3.x,List,Loops,For Loop,Nested Lists,我们都知道20.1>20,但当我编译这段代码时,我会看到什么结果 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': arr=[] 最大值 对于范围内的i(int(输入(“范围:”): 名称=输入(“名称:”) 分数=浮动(输入(“分数:”) 项目=[姓名、分数] arr.append(项目) arr.sort(反向=真) 打印(arr) 我希望安排为40,20.1,20.01,20.001等,但我得到了40,20,20.1,20.01,20.001等。

我们都知道20.1>20,但当我编译这段代码时,我会看到什么结果


如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
arr=[]
最大值
对于范围内的i(int(输入(“范围:”):
名称=输入(“名称:”)
分数=浮动(输入(“分数:”)
项目=[姓名、分数]
arr.append(项目)
arr.sort(反向=真)
打印(arr)

我希望安排为40,20.1,20.01,20.001等,但我得到了40,20,20.1,20.01,20.001等。您的排序键不正确。工作代码如下所示:

if __name__ == '__main__':
    arr=[]
    max
    for i in range(int(input("Range: "))):
        name = input("Name: ")
        score = float(input("Score: "))
        item=[name,score]
        arr.append(item)
    arr.sort(key=lambda x: x[1] , reverse=True)
    print(arr)

它是按
名称
排序的,因为这是
中的第一个键。如果您有两个名称相同的项目,它将使用
score
作为辅助排序键,但所有名称都不同。