如何在Python中按非递增和字典顺序进行排序



如何按非递增顺序对球队名称和分数列表进行排序,然后按字典顺序进行排序?我有下面一行Python,我正在努力理解它。

sigList.sort(key = lambda x : str(len(x)-1) + x[0], reverse= True)

根据我的理解,这是按非递增顺序排列的,但不是按字典顺序排列的。我有一个球队的名字,然后是那个球队的分数。我想先按最高分排序,然后按球队名称排序。我如何做到这两个?

示例:

BOB TEAM 9
DALE TEAM 7
KIM TEAM 3

Python中的排序函数应该自动按照字典顺序进行排序,但我只能以非递增顺序对输出进行排序。

将字符串转换为一个元组,其中包含要按该顺序排序的字段。

要先获得最高分数,请将其转换为负数。

sigList = ['BOB TEAM 9', 'KIM TEAM 3', 'DALE TEAM 7', 'FRED TEAM 3']
sigList.sort(key = lambda x: (-int(x.split()[-1]), x.split()[:-1]))
print(sigList) # ['BOB TEAM 9', 'DALE TEAM 7', 'FRED TEAM 3', 'KIM TEAM 3']

相关内容

  • 没有找到相关文章

最新更新