Как отсортировать числа и записать в новый текстовый файл
Может ли кто-нибудь помочь мне со следующей проблемой. У меня есть задача, в которой мне нужно отсортировать числа из txt файла от наименьшего к наибольшему значению. Независимо от комбинации чисел или длины текста, ему необходимо отсортировать числа от наименьшего к наибольшему. Любая помощь будет оценена по достоинству.
Текстовый файл (input.txt)
мин:2,1,4,3,6,5
макс:1,2,3,4,5,6
в среднем:1,2,3,4,5,6
Я написал следующий код, но он просто упорядочил заголовок строки по алфавиту
inputFile = open("input.txt", 'r')
lineList = inputFile.readlines()
lineList.sort()
print (lineList)
for line in lineList:
print(line)
with open('inputcopy.txt', 'a') as f:
for line in lineList:
lineList.sort()
f.write(line)
Спасибо за любую помощь
2 ответа
Поскольку вы читаете данные из file
, у нас есть каждая строка в виде строки. Итак, вам нужно использоватьsplit
метод в сочетании int
конструктор.
Этого можно достичь, используя понимание списка.
for line in lineList:
numbers = [int(item) for item in line.split(':')[1].split(',')]
line.split(':')[1]
дает как строку 2,1,4,3,6,5
Другая split
через запятую разделитель дает нам списокnumbers
. я использовалint
конструктор, потому что после split
метод у нас есть как strings
.
Вы можете использовать регулярное выражение. Обратите внимание, что вам нужно либо преобразовать в int, либо использовать настраиваемую функцию, которая учитывает целочисленное представление
for line in lineList:
sorted_line = sorted(map(int, re.findall(r'\d+',line)))
for line in lineList:
sorted_line = sorted(re.findall(r'\d+',line), key=lambda x:int(x))