我有[数字,名称]格式的数组,我正在尝试使用sort()函数将其从最高数字排序到最低数字。
我目前正在数组上使用sort()然后反转结果,但它似乎没有正确排序。
以下是我正在使用的值:
['850.766666667', 'Chris'], ['332.466666667', 'Callum'], ['655.793939394', 'James'], ['84.9444444443', 'John']
这是我得到的结果:
[('850.766666667', 'Chris'), ('84.9444444443', 'John'), ('655.793939394', 'James'), ('332.466666667', 'Callum')]
正如您可能看到的那样,('84.9444444443', 'John')
应该在最后,但它是排序后的第二个值。
我做错了什么?
答案 0 :(得分:3)
使用此代码
l = ['850.766666667', 'Chris'], ['332.466666667', 'Callum'], ['655.793939394', 'James'], ['84.9444444443', 'John']
sorted(l, key=lambda k: float(k[0]), reverse=True)
答案 1 :(得分:3)
几乎正确@Zaaferani
l = ['850.766666667', 'Chris'], ['332.466666667', 'Callum'], ['655.793939394', 'James'], ['84.9444444443', 'John']
sorted(l, key=lambda k: float(k[0]), reverse=True)
如果你不想存储已排序函数的输出
l=sorted(l, key=lambda k: float(k[0]), reverse=True)