Python - 哪个初始化列表更快?
pythonserver side programmingprogramming
Python 是一种非常灵活的语言,其中可以通过多种方式执行单个任务,例如初始化列表可以通过多种方式执行。但是,这些看似相似的方法之间存在细微的差异。Python 因其简单性和可读性而广受欢迎,但与 C++ 或 Java 相比,它同样因速度慢而臭名昭著。‘for’ 循环尤其以速度慢而闻名,而像 map() 和 filter() 这样的方法则以速度快而闻名,因为它们是用 C 编写的。
示例
# 导入时间模块以计算时间 导入时间 # 初始化列表以保存时间 forLoopTime = [] whileLoopTime = [] listComprehensionTime = [] starOperatorTime = [] # 重复该过程 500 次 # 并计算平均所用时间。 for k in range(500): # 开始时间 start = time.time() # 声明空列表 a = [] # 运行 for 循环 10000 次 for i in range(10000): a.append(0) # 停止时间 stop = time.time() forLoopTime.append(stop-start) # 开始时间 start = time.time() # 声明空列表 a = [] i = 0 # 运行 for 循环 10000 次 while(i<10000): a.append(0) i+= 1 stop = time.time() whileLoopTime.append(stop-start) start = time.time() # 使用列表推导来初始化列表 a = [0 for i in range(10000)] stop = time.time() listComprehensionTime.append(stop-start) start = time.time() # 使用 * 运算符 a = [0]*10000 stop = time.time() starOperatorTime.append(stop-start) print("for 循环所用的平均时间:" + str(sum(forLoopTime)/100)) print("while 循环所用的平均时间:" + str(sum(whileLoopTime)/100)) print("列表推导所用的平均时间:" + str(sum(listComprehensionTime)/100)) print("* 运算符所用的平均时间:" + str(sum(starOperatorTime)/100))
输出
for 循环所用的平均时间:0.00623725175858 while 循环所用的平均时间:0.00887670278549 列表推导所用的平均时间:0.00318484544754 * 运算符所用的平均时间:0.000371544361115