给定一个固定大小 (n
) 的整数列表 (list_nb
),将所有值重置(重新初始化)为 0 的最佳方法是什么。
我已经尝试了两种方法,1)使用循环将所有元素一一重置,2)一个具有相同大小的新列表(其中所有元素都为 0)。
第二种方法在执行时间方面显然给出了更好的结果。
import time
n = 200_000_000
list_nb = [0]*n
# some lines of code that change the list_nb ....
# method 1 to reset
start_time = time.time()
for i in range(len(list_nb)):
list_nb[i] = 0
end_time = time.time()
print("Method 1 time = ",end_time-start_time," s")
# method 2 to reset
start_time = time.time()
list_nb = [0]*n
end_time = time.time()
print("Method 2 time = ",end_time-start_time," s")
结果:
- 方法 1 时间 = 16.05620765686035 秒
- 方法 2 时间 = 1.279524564743042 秒
不知道还有没有其他办法
谢谢。
最佳答案
使用 numpy 非常快。
import numpy as np
import time
n= 200000000
start_time = time.time()
list_nb = np.zeros(n)
end_time = time.time()
print(end_time-start_time)
这需要我0.003000497817993164
关于python - 在Python中重置(重新初始化)整数列表(至0)的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62782229/