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

Python:如何按数字顺序对.txt文件的内容进行排序?,python,sorting,numeric,Python,Sorting,Numeric,我在编写按数字顺序排列.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(c

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

您需要按数字排序,而不是按字母排序

试试这个:

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

正如巴德所说,尝试将元素转换为
int
float
。假设您使用的是整数,您可以在
sorted()
func:

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

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

score.txt

312
148
17
108
python

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]

我认为您需要将文本转换为浮点或整数。这是一个意外的排序方式,因为它们是字符串。你能发布一个csv文件的小样本吗?你需要澄清一下。你是在对一堆整数排序吗?或者是像这样的东西:bar3,bar15xyz,Bar32,foo1,foo2,foo10,foo23,foo103。如果是后者,您需要的是自然顺序排序。有关自然顺序排序和快速Python实现的详细信息,请参阅: