Ben*_*dEg 4 python sorting lambda list
目前我正在尝试对由版本号组成的文件列表进行排序.例如:
0.0.0.0.py
1.0.0.0.py
1.1.0.0.py
Run Code Online (Sandbox Code Playgroud)
它们都存储在列表中.我的想法是sort将列表的方法与lambda表达式结合使用.lambda表达式应首先删除.py扩展,然后用点分割字符串.比将每个数字转换为整数并按它们排序.
我知道如何在c#中执行此操作,但我不知道如何使用python执行此操作.一个问题是,如何对多个标准进行排序?以及如何嵌入lambda表达式呢?
谁能帮我?
非常感谢你!
你可以使用sorted函数的key参数:
filenames = [
'1.0.0.0.py',
'0.0.0.0.py',
'1.1.0.0.py'
]
print sorted(filenames, key=lambda f: map(int, f.split('.')[:-1]))
Run Code Online (Sandbox Code Playgroud)
结果:
['0.0.0.0.py', '1.0.0.0.py', '1.1.0.0.py']
Run Code Online (Sandbox Code Playgroud)
lambda将文件名拆分为多个部分,删除最后一部分并将剩余的部分转换为整数.然后sorted使用此值作为排序标准.
| 归档时间: |
|
| 查看次数: |
515 次 |
| 最近记录: |