我有一张这样的清单
['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
如果它有像这个文件007这样的0位数字,它将计为7
如果数字后面有字母表,如File3a,则排序如下: 文件3、文件3A、文件3B
有没有办法在列表排序时添加此规则
是的,您可以使用排序过程中运行的函数
通过将
key
关键字参数传递给sorted
函数,可以定义自己的排序规则。某些代码似乎完全符合您的要求,可能如下所示:这支持任意数量的数字,后跟(可选)任意数量的非数字,再后跟(可选)任意数量的数字
相关问题 更多 >
编程相关推荐