Как отсортировать список номеров разделов в Python? [Дубликат]
На этот вопрос уже есть ответ здесь:
Сортировка списка разделенных точками чисел, например, версий программного обеспечения 4 ответаРазделы книги обычно нумеруются какx.x.x
, такие как1.2.3
. Как отсортировать список номеров разделов?
Сохраните номера разделов в виде списка строк.
# a list of strings, section numbers
ls = ['1.1', '1.10', '1.2', '1.2.3', '1.2.1', '1.9']
lists = sorted([s.split('.') for s in ls], key=lambda x:map(int, x))
# [['1', '1'], ['1', '2'], ['1', '2', '1'], ['1', '2', '3'], ['1', '9'], ['1', '10']]
r = ['.'.join(sublist) for sublist in lists]
#['1.1', '1.2', '1.2.1', '1.2.3', '1.9', '1.10']
Тем не менее, мой ожидаемый результат,
['1.1', '1.10', '1.2', '1.2.1', '1.2.3', '1.9']