【发布时间】:2019-02-05 00:16:19
【问题描述】:
read = open('700kLine.txt')
# use readline() to read the first line
line = read.readline()
aList = []
for line in read:
try:
num = int(line.strip())
aList.append(num)
except:
print ("Not a number in line " + line)
read.close()
print(aList)
该文件中有 700k 行(每行最多有 2 位数字) 我只能将该文件中的 ~280k 行放到我的 aList 中。
那么,如何将 aList 容量从 280k 扩展到 700k 或更多? (这种情况有不同的解决方案吗?)
你好,我刚刚解决了这个问题。感谢您的所有帮助。那是一个明显的缓冲问题。 解决方案只是增加缓冲区的大小。
链接在这里 Increase output buffer when running or debugging in PyCharm
【问题讨论】:
-
列表没有有容量,它们会根据需要增长。除了
readline和循环的混合之外,我没有看到您的代码有任何问题。 -
我解决了与列表容量有关的问题。请生成一个 700k 行 2 位数字,然后从 txt 读取并推入列表。您将看到只有 ~280k 将被收集到列表中。拜托,你能不能试试,你会明白我的意思。
-
@AliKahya 如果您需要一份包含有关
list comprehensions和random.randint的数字的列表。 -
@AliKahya 你甚至可以拥有一个包含 700 万个元素的列表。试试
[20000]*int(7e6),你会发现这是可能的
标签: python-3.x list buffer expand capacity