У меня есть список строк следующим образом:
["a","aa", "b","bbb", "c", "a::b", "a::b::c", "a::b::d", "b:c"]
Я хочу отсортировать это как
["a", "a::b", "a::b::c", "a:b::d", "aa", "b", "b:c", "bbb", "c"]
и так далее.Просто для контекста ... "::" действует как разделитель, который представляет иерархию.Итак, учитывая объект верхнего уровня "a" .. мы сначала получаем "a :: b", "a :: b :: c" .. и всех потомков .., прежде чем перейти к следующему объекту верхнего уровня "aa".
Что было бы хорошим способом решить эту проблему в python (интересно, есть ли что-нибудь в коллекциях или в библиотеке itertools, я не смог найти подходящий метод)?