【发布时间】:2015-12-26 07:11:00
【问题描述】:
我在编写按数字顺序排列 .txt 文件的代码时遇到了一些麻烦。
我遇到的问题是在 .txt 文件中订购数字 77、45、85、100 时,它会将其订购为 100、45、77、85; 100 是最低的。
不知道如何纠正,因为我希望 100 是最高的。
这是我目前所拥有的:
import csv
import operator
sample = open("score.txt")
csv1 = csv.reader(sample, delimiter=',')
sort = sorted(csv1, key=operator.itemgetter(1))
for eachline in sort:
print eachline
【问题讨论】:
-
我认为您需要将文本转换为浮点数或整数。它以一种意想不到的方式排序,因为它们是字符串。
-
你能发布一个 csv 文件的小样本吗?
-
你需要澄清一下。你在排序一堆整数吗?还是看起来像这样的东西:bar3、bar15xyz、bar 32、foo1、foo2、foo10、foo23、foo103。如果是后者,您想要的是自然顺序排序。
-
有关自然顺序排序和快速 Python 实现的咆哮,请参阅:blog.codinghorror.com/sorting-for-humans-natural-sort-order