當我運行以下代碼以生成一個由 0 到 999 999 999 之間的數字范圍組成的串列時MemoryError。它引發了一個. 我可以使用什么其他方式來生成相同的串列但不會占用那么多記憶體?
# Generate list
numbers = list(range(0,999999999))
# Add leading zeros
numbers = [str(x).zfill(9) for x in numbers]
uj5u.com熱心網友回復:
使用生成器:
numbers = (str(i).zfill(9) for i in range(999999999))
uj5u.com熱心網友回復:
使用生成器:
def generator(n):
i = 0
while i < n:
yield str(i).zfill(9)
i = 1
用法:
for i in generator(5):
print(i)
或者,創建一個串列:
[i for i in generator(5)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/362538.html
下一篇:在PySpark中合并(左右)
