【发布时间】:2020-09-16 21:54:57
【问题描述】:
我有一个这样的列表
['File3', 'File007', 'File3a', 'File10', 'File11', 'File1', 'File4', 'File5', 'File9', 'File8', 'File8b1', 'File8b2', 'File8b11', 'File6']
当我在 python 中使用sorted() 对其进行排序时。会变成这样:
['File007', 'File1', 'File10', 'File11', 'File3', 'File3a', 'File4', 'File5', 'File6', 'File8', 'File8b1', 'File8b11', 'File8b2', 'File9']
但我想要的是:
['File1', 'File3', 'File3a', 'File4', 'File5', 'File6', 'File007', 'File8', 'File8b1', 'File8b2', 'File8b11', 'File9', 'File10', 'File11']
它必须是数字排序: 文件1、文件2、文件3、文件10
不喜欢: 文件1、文件10、文件2、文件3
如果像这个 File007 有 0 位,则算作 7
如果它在数字后有字母,例如 File3a,它将像这样排序: 文件 3、文件 3a、文件 3b、...
有没有办法在列表排序中添加此规则?
【问题讨论】: