Как отсортировать входные данные

Входные данные:

4

200 50
203 50
202 50
300 65

На выходе должно получится

300 65
200 50
202 50
203 50

Мой ответ

300 65
200 50
203 50
202 50

Итог я смог сделать сортировку по баллам но как сделать по номеру?

def M(m): 
  for b in m:  
    print (*b) 
N = int(input())
if N >=1 and N <= 1000:
  NM = []
  for i in range(N):
    NM.append(list(map(int, input().split())))
NM.sort(key = lambda x: x[1], reverse=True)
M(NM)
def M(m): 
  for b in m:  
    print(*b)

Ответы (1 шт):

Автор решения: Roman Konoval

Сейчас у вас сортируется только по второму элементу, т.е. по баллам, а номер никак не учитывается.

Нужно добавить номеру в ключ вторым элементом в кортеж, так при равных баллах, сортировка будет делаться по номеру. Чтоб это делалось в порядке возрастания, нужно номер добавлять со знаком минус, так как для сортировки по баллам по убыванию используется reverse=True:

...
NM.sort(key = lambda x: (x[1], -x[0]), reverse=True)
...
→ Ссылка