【问题标题】:Python: How do i sort integers in a text file into ascending and/or descending order?Python:如何将文本文件中的整数按升序和/或降序排序?
【发布时间】:2016-04-13 18:49:38
【问题描述】:

我有一个包含名称和分数 1:1 的文本文件(data.txt),即:

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?

【问题讨论】:

  • 以逗号分隔 (,) 似乎没有任何意义...

标签: python sorting


【解决方案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 获取行并使用 key 函数输出的数字对它们进行排序。

【讨论】:

  • 在文件路径中输入什么?
  • 刚刚运行它并没有对数据进行排序:(
  • 您的哪一部分有问题?
猜你喜欢
  • 1970-01-01
  • 2018-11-20
  • 1970-01-01
  • 1970-01-01
  • 2014-10-19
  • 2012-11-08
  • 2023-03-07
  • 1970-01-01
  • 2021-08-24
相关资源
最近更新 更多