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

2024-09-29 01:24:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表,其中有一些章节号是字符串。 当我使用keys函数对键进行排序时,它会给出错误的结果。

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']


Tags: 函数字符串列表排序错误keyssortprint
3条回答
keys.sort(key=lambda x: [int(y) for y in x.split('.')])

这是有效的:

keys.sort(key=lambda x: map(int, x.split('.')))
from distutils.version import StrictVersion
keys.sort(key=StrictVersion)

因为章节号是版本号的一个子集,所以这可以满足您的需求。

相关问题 更多 >