python - OpenOffice calc 中的排序算法

标签 python algorithm sorting

我度过了漫长的一天,最后一天是试图对字符串列表进行排序的愚蠢时刻。 Calc 像这样对它们进行排序:

0DCv6UlY6T0
0ITZEBZrwMk
1062VEX2EfI
2jk7hilGMs0
2lZVu3haI6A
3f8s3KbFQ0Q
3hB09daYLmk
43Erj3qFxxo
6lj33w3YoOw
7jiNQnkfx0k
7TSMj6g3UoE
7Wba8IUk6v8
9hbG9dS7zl0
ALThJiGFBSc
by_VzOiPhZM
Ce250P1xep0
Cgx6DV6RJg8
d5dDgLRd1-o
DnyzZwaYDXE
dO5KLh2er4E

这不是我所期望的。查看最后 3 个值。以大写字母 D 开头的条目不应该在以小写字母 d 开头的条目之前(或相反)吗?为什么它出现在小写的 d 条目之间

有趣的是,Linux 中的命令行 sort 以相同的方式做事。有人可以解释这种排序背后的逻辑吗?我需要复制它(或者在 Python 中复制它,如果它已经在某处实现)。

最佳答案

这是因为语言环境。查看两者之间的区别:

sort inputfile

和(你可能想要的):

LANG="C" sort inputfile

第二个命令的输出:

0DCv6UlY6T0
0ITZEBZrwMk
1062VEX2EfI
2jk7hilGMs0
2lZVu3haI6A
3f8s3KbFQ0Q
3hB09daYLmk
43Erj3qFxxo
6lj33w3YoOw
7TSMj6g3UoE
7Wba8IUk6v8
7jiNQnkfx0k
9hbG9dS7zl0
ALThJiGFBSc
Ce250P1xep0
Cgx6DV6RJg8
DnyzZwaYDXE
by_VzOiPhZM
d5dDgLRd1-o
dO5KLh2er4E

关于python - OpenOffice calc 中的排序算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7528246/

相关文章:

c++ - 按非惰性 lambda 表达式/投影排序

python - 如何使用 gql 客户端在 GraphqQL 查询中声明变量?

algorithm - 诊断动态规划与优先级队列的情况

python - 在 Python 列表中存储大量数据

performance - 哪种方法更好 : space versus time complexity

algorithm - 我们应该忽略 O(nk) 中的常量 k 吗?

python - 如何根据用户输入循环回到以前的意图?

python - 元组比较

python - 将用户指定的数字添加到文件中已有的数字。 (Python)

ios - 可以将 "self"与 NSSortDescriptor 一起使用以按对象本身而不是对象的属性进行排序吗? (核心数据/NSFetchedResultsController)