我在编写按数字顺序排列 .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
就像 budder 所说,尝试将你的元素转换为
int
或 float
。假设您正在使用整数,您可以在 key
func:中更改
sorted()
sort = sorted(csv1, key=lambda x : int(x[1]))
您需要按数字而不是字母顺序对它们进行排序。
试试这个:
sort = sorted(csv1, key=lambda item: int(item[1]))
首先需要将条目转换为整数才能正确排序。
分数.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]