我有一个文本文件(data.txt),其中包含名称和分数1:1,即:
Mike = 1\n John = 2\n Cam = 3\n
我想按升序和降序对整数和相应的名称进行排序。
with open(filepath, 'r') as file:
list = []
for line in file:
list.append(line[1:-1].split(","))
list.sort(key=lambda x: int(x[4]))
是的,我做了一些研究,但它没有用,我希望你们中的一个人可以帮我解决上面的代码。我知道我必须将文本文件中的数据转换为列表然后对列表进行排序然后将写回写入文本文件,但我不知道如何。 资料来源:How do i sort a text file numerically highest to lowest?
答案 0 :(得分:1)
这是一个例子,使用sorted()函数在内存中执行。
with open(filepath, 'r') as file:
sorted_data=sorted(file.readlines(),
key=lambda item: int(item.rsplit('=',1)[-1].strip()))
sorted_data将包含已排序行的列表。
这是:
打开文件:
with open(filepath, 'r') as file:
获取文件的所有行(作为列表):
file.readlines()
对于文件中的每一行,sorted()将根据将每行传递到“key”函数的输出对它们进行数字排序。
“key”函数取一行,用“=”符号拆分,然后取出它的最后一部分(=符号后面的部分),去掉任何前导或尾随空格(.strip())和将值转换为整数(int)。
Sorted接受行并使用键功能输出的数字对它们进行排序。