对于前面没有字母顺序小于10的Python数

2024-05-23 21:04:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Python列出一个目录。我的目录中只有名为的文件:

A1, A2, A3,..., A10, A11,..., B1,B2, ..., B10, B11 ...

问题是,当我尝试用Python按字母顺序排序时:

^{pr2}$

我得到了以下命令:

A1, A10, A11, ... ,A2 ... 

所以我的问题是如何先按字母顺序排序,然后用数字排序


Tags: 文件目录a2排序顺序a1字母b2
1条回答
网友
1楼 · 发布于 2024-05-23 21:04:04

创建一个排序键函数,例如:

def my_order(value):
    return (value[0], int(value[1:]))

然后使用它对列表进行排序:

^{pr2}$

这将对列表中的每个值调用my_order函数,然后根据这些新计算的值对列表进行排序。这也被称为“装饰-排序-取消装饰”(“DSU”)或“施瓦茨变换”。在

在本例中,它创建一个元组列表,如('A', 2)('A', 11)等。如果两个元组具有相同的第一个值(比如'A'),则它将移动到下一对值(2和{}这里)。因为这两个都是整数,所以它会对它们进行数字排序。它使用该顺序对原始列表进行排序。在

相关问题 更多 >