Иногда, участвуя в соревновательном тесте по программированию, мы можем столкнуться с проблемой, при которой нам требуется отсортировать пару в противоположных порядках по индексам. Эта конкретная статья посвящена решению проблемы, в которой нам требуется отсортировать число в порядке убывания, а затем строку в порядке возрастания. Это тип проблемы, которая часто встречается при сортировке пар. Давайте обсудим, как это можно решить.
Метод : Using sorted()
+ lambda
Комбинация этих функций может быть использована для выполнения этой задачи. В них мы передаем в лямбда-функцию отрицательные значения, чтобы возрастающий порядок чисел оценивался как убывающий, и, следовательно, успешный взлом для выполнения этой задачи.
# Python3 code to demonstrate working of
# Inverse sorting String, Integer tuple list
# Using sorted() + lambda
# initializing list
test_list = [("Geeks", 5), ("For", 3), ("Geeks", 6), ("Is", 5),
("Best", 7 ), ("For", 5), ("CS", 3)]
# printing original list
print("The original list is : " + str(test_list))
# Inverse sorting String, Integer tuple list
# Using sorted() + lambda
res = sorted(test_list, key = lambda sub: (-sub[1], sub[0]))
# printing result
print("The list after inverse sorted tuple elements : " + str(res))
Выход :
Исходный список : [(‘Geeks’, 5), (‘For’, 3), (‘Geeks’, 6), (‘Is’, 5), (‘Best’, 7), (‘For’, 5), (‘CS’, 3)]
список после обратной отсортированные элементы кортежей : (‘Best’, 7), (‘Geeks’, 6), (‘For’, 5), (‘Geeks’, 5), (‘Is’, 5), (‘CS’, 3), (‘For’, 3)]