需要帮助以数字方式排序数组

时间:2015-04-21 13:43:58

标签: python arrays list python-2.7 sorting

我有[数字,名称]格式的数组,我正在尝试使用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')应该在最后,但它是排序后的第二个值。

我做错了什么?

2 个答案:

答案 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)