keys.sort(key=lambda x: [int(y) for y in x.split('.')])
Это работает:
keys.sort(key=lambda x: map(int, x.split('.')))
Предоставьте настраиваемый аргумент ключа
для sort
или sorted
.
Из http://docs.python.org/library/functions.html#sorted :
ключ определяет функцию одного аргумента, который используется для извлечения ключа сравнения из каждого элемента списка : key = str.lower. Значение по умолчанию - Нет (сравнивайте элементы напрямую).
from distutils.version import StrictVersion
keys.sort(key=StrictVersion)
Поскольку номера глав являются подмножеством номеров версий, это покрывает ваши потребности.