Сортировка каждой строки строки числовых данных в текстовом файле с использованием Python
У меня есть текстовый файл с 3 столбцами числовых данных, я хочу отсортировать каждую строку файла отдельно в порядке убывания.
Входной файл:
12 10 5
1 120 3
-1 1 10
-1 -1 -1
Выходной файл:
12 10 5
120 3 1
10 1 -1
-1 -1 -1
Я просто пытался использовать sorted()
функционировать так:
with codecs.open('BI_TA','r') as f:
with codecs.open('ta_sort','w') as ff:
for line in f.readlines():
line=sorted(line)
ff.write(line)
Но это не работает.
2 ответа
Решение
Заменить:
line=sorted(line)
от:
line=' '.join(sorted(line.split(), key=int, reverse=True))
Скажем, текущая строка `1 120 3'. В этой строке применяются следующие действия:
line.split()
->['1', '120', '3']
sorted(['1', '120', '3'], key=int, reverse=True)
->['120', '3', '1']
сортирует в убывающем рудере, рассматривая каждое значение какint
потому чтоkey=int
,line = ' '.join(['120', '3', '1'])
->"120 3 1"
преобразует список в строку, потому чтоfile.write()
принимает только строки.