从单独行上的字符串文本文件生成整数数组。更好的方式?

时间:2018-06-08 14:30:21

标签: python arrays string integer

所以我有这个非常长的.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 :(得分:1)

  

当然有一个更好的内置方法可以读取文件和   自动做这些修改,对吧?

由于您的文件占用了很多行,因此最好逐行读取内容而不是整个内容。但您可以使用列表理解来简化此操作。

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)

返回生成器