Python:如何按数字顺序对.txt文件的内容进行排序?
我在编写按数字顺序排列.txt文件的代码时遇到了一些麻烦 我遇到的问题是,当在.txt文件中订购编号77、45、85、100时,它将其订购为100、45、77、85;100是最低的 我不知道该怎么纠正,因为我希望100是最高的 这就是我到目前为止所做的: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
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实现的详细信息,请参阅: