2016-03-12 2 views
0

Итак, я работаю с .txt-файлом, и я пытаюсь отсортировать все числа в списке целых чисел.Сортировка содержимого файла в список в Python

Этот файл выглядит так.

21 
32 
54 65 
128 
38 92 155 21 
54 

И я хочу, чтобы мой выход будет:

[21, 32, 54, 65, 128, 38, 82, 155, 21, 54]. 

Как мне это сделать?

+2

исходя из вашего ожидаемого результата, он не сортируется? Если вы хотите, чтобы он был отсортирован, обновите свой пост – Saleem

ответ

2

Просто используйте split метод:

with open('filename.txt', 'r') as file: # replace filename.txt with your filename 
    data = file.read().split() 
    data = [int(x) for x in data] # this will convert all of the numbers to integers 

print(data) 

Выход:

[21, 32, 54, 65, 128, 38, 92, 155, 21, 54] 
2

Вы можете использовать .split(), но это даст список строк. Для преобразования, вы можете использовать [int(number) for number in numbers] или list(map(int, numbers)):

with open("myfile.txt") as f: 
    numbers = f.read().split() 
    integers = list(map(int, numbers)) 
0

Ну, если вы хотите, чтобы прочитать все номера из текстового файла, сортировать и хранить их в списке, вы можете попробовать этот код:

data = [] 
with open('input.txt', 'r') as fp: 
    for line in fp.readlines(): 
     _lineData = line.split(' ') 
     for num in [int(f) for f in _lineData if f != '']: 
      data.append(num) 
data.sort() 

содержание input.txt

21 
32 
54 65 
128 
38 92 155 21 
54 

Ваш вывод на основе содержимого текстового файла будет как:

[21, 21, 32, 38, 54, 54, 65, 92, 128, 155] 
Смежные вопросы