如何按数字顺序对 .txt 文件的内容进行排序? [重复]

问题描述 投票:0回答:3

我在编写按数字顺序排列 .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
python sorting numeric
3个回答
4
投票

就像 budder 所说,尝试将你的元素转换为

int
float
。假设您正在使用整数,您可以在
key
func:
 中更改 
sorted()

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

1
投票

您需要按数字而不是字母顺序对它们进行排序。

试试这个:

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

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]
© www.soinside.com 2019 - 2024. All rights reserved.