Как отсортировать список списков по длине подсписок

У меня есть следующий список

a = [['a', 'b', 'c'], ['d', 'e'], ['f', 'g', 'h'], ['i', 'j', 'k', 'l'], ['m', 'n'], ['o']]

Я хотел бы отсортировать список в зависимости от длины их подписок. Результат должен выглядеть следующим образом:

a = [['o'],['d','e'],['m', 'n'],['a', 'b', 'c'],['f', 'g', 'h'], ['i','j','k','l']]

Ответ 1

Используйте параметр key, доступный в sort и sorted. Он определяет функцию одного аргумента, которая используется для извлечения ключа сравнения из каждого элемента списка

In [6]: a = [['a', 'b', 'c'], ['d', 'e'], ['f', 'g', 'h'], ['i', 'j', 'k', 'l'], ['m', 'n'], ['o']]

In [7]: a.sort(key=len)

In [8]: print a
[['o'], ['d', 'e'], ['m', 'n'], ['a', 'b', 'c'], ['f', 'g', 'h'], ['i', 'j', 'k', 'l']]

Ответ 2

может быть сделано

sorted(a, key=len)