Сортировка чисел, встроенных в список строк - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть текстовый документ с данными, который выглядит следующим образом:

(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

Есть идеи?Я попытался сделать это в списке с разделением ('\ n'), но я не уверен, что я могу сделать после этого.Я знаю, как изолировать числа, и тогда я мог бы сравнить только числа, но я не знаю, как бы я мог сохранить их, идентифицируя другую информацию.Спасибо!

1 Ответ

0 голосов
/ 20 февраля 2019
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)
...