我度过了漫长的一天,最后一天是试图对字符串列表进行排序的愚蠢时刻。 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/