Python:如何按数字顺序对.txt文件的内容进行排序?

时间:2015-09-28 23:13:50

标签: python sorting numerical

大家好,我在编写按数字顺序排列.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

非常感谢任何帮助

3 个答案:

答案 0 :(得分:4)

与萌芽说的一样,尝试将您的元素转换为intfloat。假设您正在使用整数,则可以更改key func中的sorted()

sort = sorted(csv1, key=lambda x : int(x[1]))

答案 1 :(得分:1)

您需要以数字方式而不是按字母顺序对它们进行排序。

试试这个:

sort = sorted(csv1, key=lambda item: int(item[1]))

答案 2 :(得分:1)

首先需要将条目转换为整数才能正确排序。

<强> score.txt

312
148
17
108

<强>蟒

with open('score.txt', 'r') as f:
    lines = f.readlines()
numbers = [int(e.strip()) for e in lines]
numbers.sort()
print numbers

#[17, 108, 148, 312]