如何在Python中对部分编号列表进行排序?

星火闪闪

书籍部分通常编号为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']
Pietzcker团队

使用自定义比较功能,将字符串转换为整数的子列表。这些将正确排序而不会出现问题。

In [4]: ls = ['1.1', '1.10', '1.2', '1.2.3', '1.2.1', '1.9']

In [5]: def section(s):
   ...:     return [int(_) for _ in s.split(".")]
   ...:

In [6]: sorted(ls, key=section)
Out[6]: ['1.1', '1.2', '1.2.1', '1.2.3', '1.9', '1.10']

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python:使用渐进编号重命名列表中的重复项,而不对列表进行排序

如何在Java中对列表列表进行排序?

如何在Flutter中对列表进行排序

如何在R中对列表列表进行排序?

如何在Python中的字典中对列表进行排序?

如何在JavaScript中对按顺序编号的文件进行排序?

如何在Python 3中获取列表中的列表编号?

如何在Sphinx中重置编号的部分?

如何基于python中的float值对列表中的元组字符串部分进行排序?

如何在Python中按字典值对字典列表进行部分排序

如何在python中对列表中的两个列表路径的字符串进行排序?

如何在python中按日期时间对列表进行排序?

如何在字典中对字典列表进行排序并在python中覆盖它

python如何在txt文件中对行进行编号?

如何在更改输入[type =“ radio”]时按状态编号,日期和时间对列表进行排序?

在链接列表中对最高编号进行排序

如何在字典中对列表进行排序

如何按字母顺序和最高编号对列表中的字典进行排序

根据列表 Python 中的特定部分对列表进行排序

如何在python中的字典列表的字典中对数据进行排序?

Python - 如何在列表中附加整数并进行排序?

如何在bash中对列表中的输出进行编号?

如何在 Python 中对列表对象进行排序,类似于 C 中的结构

如何在python中对如此复杂的列表进行排序?

如何在python中按顺序对列表进行排序?

如何在 C# 中对列表列表进行排序?

如何在python中对字典的一部分进行排序

如何对列表中的部分值进行排序?

如何在 Python 中对字符串列表进行排序