在Python中按整数降序对列表进行排序

时间:2018-08-24 02:21:16

标签: python list sorting

我有一个用Fuzzywuzzy创建的Python列表

result=[(fuzz.WRatio(n, n2),n2,sdf.index[x],bdf.index[y])
                    for y, n2 in enumerate(Col2['name']) if fuzz.WRatio(n, n2)>70 and len(n2) >= 2]
    print('Result: {}'.format(result))

将产生以下结果:

String to compare to raw data: ABC
Result: [(90, u'ABC COMPANY', 21636, 100079), (86, u'ABC COMPANY CO', 21636, 72933), (86, u'ABC (M) SDN BHD', 21636, 92592), (95, u'ABC PTE LTD.', 21636, 171968)]

我希望能够按每个数组的第一位降序对整个列表进行排序。我尝试使用

result.sort()

不按降序对列表进行排序,知道吗?

2 个答案:

答案 0 :(得分:2)

from operator import itemgetter

values = [(90, u'ABC COMPANY', 21636, 100079), (86, u'ABC COMPANY CO', 21636, 72933), (86, u'ABC (M) SDN BHD', 21636, 92592), (95, u'ABC PTE LTD.', 21636, 171968)]
values.sort(key=itemgetter(0), reverse=True)
print(values)

输出

[(95, 'ABC PTE LTD.', 21636, 171968), (90, 'ABC COMPANY', 21636, 100079), (86, 'ABC COMPANY CO', 21636, 72933), (86, 'ABC (M) SDN BHD', 21636, 92592)]

一种选择是使用lambda函数作为键:

values.sort(key=lambda x: x[0], reverse=True)

答案 1 :(得分:1)

list.sort()有一个reverse kwarg。使用它