【发布时间】:2020-07-07 19:07:18
【问题描述】:
给定一个固定大小 (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 秒
不知道有没有其他办法。
谢谢。
【问题讨论】: