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

Python: How do you sort the contents of a .txt file in numerical order?

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

就像朋友说的那样,尝试将您的元素转换为 intfloat。假设您使用的是整数,您可以在 sorted() func:

中更改 key
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]