Сортировка списка по первому элементу

Дан вложенный список, содержащий целые числа. Необходимо отсортировать все строки списка с помощью заданного ключа, а затем переставить строки таким образом, чтобы первые элементы были отсортированы с помощью заданного ключа в обратном порядке. Ключ key передается в функцию.

data = [[1], [3, 2], [6, 5, 4]]
key = lambda x: x
res = [[4, 5, 6], [2, 3], [1]]

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

Автор решения: n1tr0xs

Вот так можно сделать:

new_data1 = [sorted(i, key=key) for i in data] # сортировка внутренних списков 
new_data2 = sorted(new_data1, key=key, reverse=True) # сортировка главного списка

В одну строку можно так:

new_data = sorted([sorted(i, key=key) for i in data], key=key, reverse=True)
→ Ссылка