基于python中的int列对元组进行排序

zup*_*kos 3 python sorting int tuples

我有以下元组:

['Southampton', '9', '14', '13']
['Nottingham Forest', '8', '10', '17']
['Coventry City', '7', '4', '14']
['Blackburn Rovers', '4', '6', '14']
['Newcastle United', '24', '20', '10']
['FC Wimbledon', '21', '20', '11']
['Arsenal', '21', '19', '8']
Run Code Online (Sandbox Code Playgroud)

我想按第2和第3列排序.所以我使用以下代码:

sorted_rank = sorted(temp_rank, key=itemgetter(1,2), reverse=True)
Run Code Online (Sandbox Code Playgroud)

但正如您所看到的那样,第2列和第3列不是int,因此排序过程完成错误.我如何"告诉"python这些列是int而不是字符串?

我尝试了这个,但没有:

sorted_rank = sorted(temp_rank, key=itemgetter(1,int(2)), reverse=True)
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 6

您必须指定自定义函数或lambda.

以下作品:

sorted_rank = sorted(temp_rank, key=lambda i: (int(i[1]), int(i[2])), reverse=True)
Run Code Online (Sandbox Code Playgroud)

哪里sorted_rank变成:

[['Newcastle United', '24', '20', '10'],
 ['FC Wimbledon', '21', '20', '11'],
 ['Arsenal', '21', '19', '8'],
 ['Southampton', '9', '14', '13'],
 ['Nottingham Forest', '8', '10', '17'],
 ['Coventry City', '7', '4', '14'],
 ['Blackburn Rovers', '4', '6', '14']]
Run Code Online (Sandbox Code Playgroud)