Как отсортировать числа и записать в новый текстовый файл - PullRequest
1 голос
/ 04 февраля 2020

Может кто-нибудь, пожалуйста, помогите мне со следующей проблемой. У меня есть задача, где мне нужно отсортировать числа из текстового файла от минимального до максимального значения. Независимо от сочетания чисел или длины текста, необходимо отсортировать числа по возрастанию. Любая помощь будет по достоинству оценена.

Текстовый файл (input.txt)

min: 2,1,4,3,6,5

max: 1,2,3,4,5,6

avg: 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 ]

1 голос
/ 04 февраля 2020

Поскольку вы читаете данные из 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.

0 голосов
/ 04 февраля 2020

Вы можете использовать регулярное выражение. Обратите внимание, что вам нужно либо преобразовать в 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))
...