python - 在Python中重置(重新初始化)整数列表(至0)的最佳方法是什么

标签 python list time reset

给定一个固定大小 (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/

相关文章:

python - 从 Flask 路由中的 wtforms FormField 获取数据

python - 如何统计一个列表中相同值的最长序列,然后输出一个元组中的最大序列

html - 如何修复 : even list elements not working

shell - 如何在命令运行时在文件中打印?

c - 如何以毫秒为单位获取 C 中耗时? ( window )

python - 如何从 Flask 装饰器将变量发送到 Jinja 模板?

python - 为什么在 django 中进行大型查询(或一系列查询)后内存没有释放到系统?

python - 计时功能

python - newB 在 Udacity Computer 与 Backus Naur 斗争。科学。 101

python - 在python中的二维列表中对邻居进行分组