Zhouleijie1 2021-07-19 15:32 采纳率: 50%
浏览 63

对List中的这样11-10-78-01的数据按升序排序

数据量是不固定的,可以是10-01,也可以是08-07-12-41-54-12

  • 写回答

5条回答 默认 最新

  • CSDN专家-HGJ 2021-07-19 17:05
    关注

    在python中有个库natsort,用自然顺序算法对给定数组中的元素排序。 natsort() 函数实现了“自然排序”,即数字从 1 到 9 的排序方法,字母从 a 到 z 的排序方法,短者优先。你的需求,可以用natsort来实现,代码如下:

    import natsort
    a = ['10-4', '12-18-7', '12-18-2', '12-18-3', '12-18-4', '12-18-5', '6-4-1', '12-3-10', '10-6-7-4-3', '10-6-7-4-2', '12-3-12', '10-6-7-4-1', '12-3-11', '7-78-1-7', '7-78-1-6', '12-71-4', '12-71-3', '12-71-2', '12-3-14', '7-78-1-3', '12-3-13']
    print(natsort.humansorted(a))
    
    #运行结果:
    ['6-4-1', '7-78-1-3', '7-78-1-6', '7-78-1-7', '10-4', '10-6-7-4-1', '10-6-7-4-2', '10-6-7-4-3', '12-3-10', '12-3-11', '12-3-12', '12-3-13', '12-3-14', '12-18-2', '12-18-3', '12-18-4', '12-18-5', '12-18-7', '12-71-2', '12-71-3', '12-71-4']
    

    如有帮助,请点击采纳。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月19日