我仍然是python的新手,目前我遇到了问题。 我正在尝试读取一个简单的.txt文件,并按照与每行中的数字相关的新顺序打印这些行。 (从最低到最高)
.txt目前是:
House 7 Office 2 Skyscraper 5 Shack 9 Condo 8
我需要的印刷品如下:
2 Office 5 Skyscraper 7 House 8 Condo 9 Shack
到目前为止我的代码是:
inFile = open("dogs.txt", "r")
for line in inFile:
strLine = line.split()
strLine = (strLine[1] + " " + strLine[0])
print(strLine)
我已经能够得到左侧的数字,但现在排队的问题。我试图以多种方式实现“.sort()”和“排序”,但我认为我对它们的理解不足以使它们正常工作。我已经看过,也许我应该使用“append()”,但同样,我对该方法不够熟悉,无法使用正确的语法。
答案 0 :(得分:1)
分割后按列表中的第二项排序。
with open("dogs.txt", "r") as in_file:
lines = [line.split() for line in in_file]
sorted_lines = sorted(lines, key=lambda x: int(x[1].strip()))
for line in sorted_lines:
print(" ".join(reversed(line)))
答案 1 :(得分:0)
您需要使用内部列表中的第二项
对它们进行排序inFile = open("dogs.txt", "r")
lines = []
for line in inFile:
strLine = line.strip().split(' ')
strLine = (strLine[1] + " " + strLine[0])
lines.append(strLine)
a = '\n'.join(sorted(lines,key= lambda lines:lines[0]))
print(a)
输出:
2 Office
5 Skyscraper
7 House
8 Condo
9 Shack
还记得去掉空格,因为你正在读一个文件,在每一行的末尾你会有一个\n
字符