【发布时间】:2014-02-02 20:55:11
【问题描述】:
我有一个符合模式的文件名列表:s[num][alpha1][alpha2].ext
我需要先按数字排序,然后按 alpha1,然后按 alpha2。但是,最后两个不是按字母顺序排列的,而是应该反映自定义排序。
我创建了两个代表 alpha1 和 alpha2 排序的列表,如下所示:
alpha1Order = ["Fizz", "Buzz", "Ipsum", "Dolor", "Lorem"]
alpha2Order = ["Sit", "Amet", "Test"]
最好的方法是什么?我的第一个想法是(以某种方式)标记化,以便我将每个文件名拆分为其组成部分(s、num、alpha1、alpha2),然后排序,但我不太确定如何执行如此复杂的排序。使用键函数似乎很笨重,因为这种排序似乎不适合简单的排序。
【问题讨论】:
-
一旦标记化,您的数据就可以通过
key函数完美排序。 -
您能否指出更多关于如何使用
key函数按多个属性排序的信息?我不知道如何先按一个,然后按第二个更深,然后按第三个更深。
标签: python regex string sorting tokenize