【问题标题】:Sorting of list in Python by integer in descending order [duplicate]Python中的列表按整数降序排序[重复]
【发布时间】:2018-08-24 02:21:16
【问题描述】:

我有一个用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()

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

【问题讨论】:

  • 使用 lambda 函数作为排序键应该可以工作。

标签: python list sorting


【解决方案1】:
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)

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-18
      • 2014-05-01
      • 1970-01-01
      • 2011-05-10
      • 2012-10-18
      • 2018-08-14
      相关资源
      最近更新 更多