我在python中排序时遇到问题。有谁能够帮助我!请。非常感谢!我想按照Excel中的排序方式进行排序列出原文:
table = [
u"女言葉の消失", # 2
u"キセキ", # 3
u"ふしぎなくすり", # 4
u"カキクケコ", # 5
u"嘘憑きとサルヴァドール", # 1
u"愛と勇気の三度笠ポン太", # 0
u"きせき",
"漢字",
"a",
"A",
"b",
"1",
"B"
]
Python中的结果排序
sorted(table)
['1', 'A', 'B', 'a', 'b', 'きせき', 'ふしぎなくすり', 'キセキ', '嘘憑きとサルヴァドール', '女言葉の消失', '愛と勇気の三度笠ポン太', '漢字', 'カキクケコ']
在excel中排序:
1,
a,
A,
B
b",
カキクケコ",
きせき",
キセキ",
ふしぎなくすり",
嘘憑きとサルヴァドール",
女言葉の消失",
愛と勇気の三度笠ポン太",
漢字"
Python会根据字符的顺序unicode值(它们在unicode中出现的顺序)对字符进行排序,在大多数情况下(日语日语的汉字除外),该命令可以正常工作。我不懂日语,但样本集中的符号可能看起来是汉字,而不是平假名或片假名。
>>> table = [
... u"女言葉の消失", # 2
... u"キセキ", # 3
... u"ふしぎなくすり", # 4
... u"カキクケコ", # 5
... u"嘘憑きとサルヴァドール", # 1
... u"愛と勇気の三度笠ポン太", # 0
... u"きせき",
... "漢字",
... "a",
... "A",
... "b",
... "1",
... "B"
... ]
>>> for t in sorted(table):
... print([ord(c) for c in t])
...
[49]
[65]
[66]
[97]
[98]
[12365, 12379, 12365]
[12405, 12375, 12366, 12394, 12367, 12377, 12426]
[12461, 12475, 12461]
[22040, 24977, 12365, 12392, 12469, 12523, 12532, 12449, 12489, 12540, 12523]
[22899, 35328, 33865, 12398, 28040, 22833]
[24859, 12392, 21191, 27671, 12398, 19977, 24230, 31520, 12509, 12531, 22826]
[28450, 23383]
[65398, 65399, 65400, 65401, 65402]
这里有一篇有趣的文章,解释了正确排序here的困难。