我有一个用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()
不按降序对列表进行排序,知道吗?
答案 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。使用它