@buks_net
Школьник, изучаю программирование

Как отсортировать массив по двум значениям?

from itertools import groupby

result = []
e = int(input())
for i in range(e):
	a = input().split(' ')
	result.append((int(a[0]), int(a[1])))

e = sorted(result, key = lambda point: (point[0], point[1]))
for i in e:
	print(i[0], i[1])

Мне нужно, чтобы первое значение сортировалось по возрастанию, а второе по убыванию. В целом, всё уже работает, однако второе значение сортируется по возрастанию.
Примеры правильной работы работы:
Ввод:
5
1 50
1 100
2 30
3 100
2 100
Вывод:
5
1 100
1 50
2 100
2 30
3 100

Как программа работает сейчас:
Ввод:
5
1 50
1 100
2 30
3 100
2 100
Вывод:
5
1 50
1 100
2 30
2 100
3 100
  • Вопрос задан
  • 190 просмотров
Решения вопроса 1
0xD34F
@0xD34F
Второе значение - подставляйте противоположное по знаку:

sorted(result, key=lambda n: (n[0], -n[1]))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы