Создайте массив целых чисел из текстового файла строк на отдельных строках.Лучший путь? - PullRequest
0 голосов
/ 08 июня 2018

Итак, у меня есть этот очень длинный .txt файл, который содержит все неупорядоченные целые числа от 0 до 100 000 включительно.

Пример .txt

142142
142421
45454
355
etc...

И после некоторых манипуляций мне удалось успешно достичь цели генерации массива из этих чисел в список строк.

arr = open('/Users/macroot/Desktop/data.txt')
data = []
for line in arr:
    data.append(line)
data

Out[ ]: ['142142\n',
         '142421\n',
         '45454\n',
         '355\n',
         'etc...\n']

Кроме того, я даже понял, что могу удалить новый тег строки и преобразовать каждый элемент в целое число.

data = list(map(lambda x: int(x.rstrip()), data))
data

Out[ ]: [142142,
         142421,
         45454,
         355,
         etc...]

Замечательно!Теперь я могу поместить это в алгоритм сортировки слиянием и посчитать некоторые инверсии!Но подождите, в чем мой вопрос?

Конечно, есть лучший встроенный метод, который читает файл и выполняет эти изменения автоматически, верно?

1 Ответ

0 голосов
/ 08 июня 2018

Конечно, есть лучший, встроенный метод, который читает файл и выполняет эти изменения автоматически, верно?

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

with open('/Users/macroot/Desktop/data.txt') as f:
     array = [int(line) for line in f]

Также, если вы используете библиотеку numpy , вы можете применить

array = np.genfromtxt('/Users/macroot/Desktop/data.txt', dtype=np.int32)

, который возвращает генератор .

...