Как отсортировать числа и записать в новый текстовый файл

Может ли кто-нибудь помочь мне со следующей проблемой. У меня есть задача, в которой мне нужно отсортировать числа из 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))
Другие вопросы по тегам