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]))
就像朋友说的那样,尝试将您的元素转换为 int
或 float
。假设您使用的是整数,您可以在 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]
我在编写按数字顺序排列 .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]))
就像朋友说的那样,尝试将您的元素转换为 int
或 float
。假设您使用的是整数,您可以在 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]