使用Python对字符串格式的数字进行排序

pro*_*eek 7 python sorting

我有一个列表,其中包含一些字符串中的章节编号.当我使用键功能对键进行排序时,它会给我错误的结果.

keys = ['1.1', '1.2', '2.1', '10.1'] 
keys.sort() 
print keys

['1.1', '1.2', '10.1', '2.1']

我怎样才能使用sort函数来获取

['1.1', '1.2', '2.1', '10.1']

如果阵列有这样的东西怎么办?

['1.1.1', '1.2.1', '10.1', '2.1'] -> ['1.1.1','1.2.1','2.1','10.1']

Ign*_*ams 10

keys.sort(key=lambda x: [int(y) for y in x.split('.')])
Run Code Online (Sandbox Code Playgroud)