大家好,我在编写按数字顺序排列.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
非常感谢任何帮助
答案 0 :(得分:4)
与萌芽说的一样,尝试将您的元素转换为int
或float
。假设您正在使用整数,则可以更改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]