2024-05-23 21:04:04 发布
网友
我想用Python列出一个目录。我的目录中只有名为的文件:
A1, A2, A3,..., A10, A11,..., B1,B2, ..., B10, B11 ...
问题是,当我尝试用Python按字母顺序排序时:
我得到了以下命令:
A1, A10, A11, ... ,A2 ...
所以我的问题是如何先按字母顺序排序,然后用数字排序
创建一个排序键函数,例如:
def my_order(value): return (value[0], int(value[1:]))
然后使用它对列表进行排序:
这将对列表中的每个值调用my_order函数,然后根据这些新计算的值对列表进行排序。这也被称为“装饰-排序-取消装饰”(“DSU”)或“施瓦茨变换”。在
my_order
在本例中,它创建一个元组列表,如('A', 2)、('A', 11)等。如果两个元组具有相同的第一个值(比如'A'),则它将移动到下一对值(2和{}这里)。因为这两个都是整数,所以它会对它们进行数字排序。它使用该顺序对原始列表进行排序。在
('A', 2)
('A', 11)
'A'
2
创建一个排序键函数,例如:
然后使用它对列表进行排序:
^{pr2}$这将对列表中的每个值调用
my_order
函数,然后根据这些新计算的值对列表进行排序。这也被称为“装饰-排序-取消装饰”(“DSU”)或“施瓦茨变换”。在在本例中,它创建一个元组列表,如}这里)。因为这两个都是整数,所以它会对它们进行数字排序。它使用该顺序对原始列表进行排序。在
('A', 2)
、('A', 11)
等。如果两个元组具有相同的第一个值(比如'A'
),则它将移动到下一对值(2
和{相关问题 更多 >
编程相关推荐