如何按非递增顺序对球队名称和分数列表进行排序,然后按字典顺序进行排序?我有下面一行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']