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

标签 python list sorting text

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

(数据.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') 将其放入列表中,但我不确定之后可以做什么。我知道如何隔离这些数字,然后我可以单独比较这些数字,但我不知道如何保留它们的其他识别信息。 谢谢!

最佳答案

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)

关于python - 对字符串列表中嵌入的数字进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54790528/

相关文章:

python - 如何关闭在 Pillow 中打开的图像?

python - 使用lora接收树莓派上的杂乱数据

javascript - 更改从 JSON 数组创建的列表中的项目

python - 如何在列表理解python中构建两个for循环

c - 在 C 中填充数组时对数组进行排序

C-排序大型2D整数数组的最快方法

Python 跟不上时间

python - 我找不到适合新图像零点轮廓的方法

java - 循环后写入字符串

php - 根据一组关键字的出现对sql结果进行排序