对字符串列表中嵌入的数字进行排序

时间:2019-02-20 16:01:26

标签: python list sorting text

我有一个数据文本文档,如下所示:

(data.txt)

John|5|02-20-2019
Sally|3|02-19-2019
Billy|12|02-12-2019
Smith|1|02-16-2019

我希望能够基于嵌入在'|'中的数字将这些值排序到一个名为(data_sorted.txt)的新文本文档中。所以基本上我希望输出文档是:

Billy|12|02-12-2019
John|5|02-20-2019
Sally|3|02-19-2019
Smith|1|02-16-2019

有什么想法吗?我试过使用split('\ n')将其放入列表,但是我不确定之后该怎么办。我知道如何隔离数字,然后我可以单独比较数字,但是我不知道如何保留它们的识别其他信息。 谢谢!

1 个答案:

答案 0 :(得分:1)

with open('data.txt', 'r') as infile:
    datalist = list(infile)

datalist = sorted(datalist, key=lambda x: int(x.split('|')[1]), reverse=True)

with open('sorted_data.txt', 'w') as outfile:
    for line in datalist:
        outfile.write(line)