Python - 初始化列表哪種更快?
Python 是一種非常靈活的語言,一項單一任務可以用許多種方式完成,例如初始化列表可以採用多種方式。但是,這些看上去相似的方法之間存在細微的差別。Python 因其簡單性和可讀性廣受歡迎,但也因與 C++ 或 Java 相比執行速度慢而同樣聲名狼藉。“for” 迴圈尤其以慢而聞名,而 map() 和 filter() 等方法以快而著稱,因為它們是用 C 編寫的。
示例
# import time module to calculate times
import time
# initialise lists to save the times
forLoopTime = []
whileLoopTime = []
listComprehensionTime = []
starOperatorTime = []
# repeat the process for 500 times
# and calculate average of times taken.
for k in range(500):
# start time
start = time.time()
# declare empty list
a = []
# run a for loop for 10000 times
for i in range(10000):
a.append(0)
# stop time
stop = time.time()
forLoopTime.append(stop-start)
# start time
start = time.time()
# declare an empty list
a = []
i = 0
# run a for loop 10000 times
while(i<10000):
a.append(0)
i+= 1
stop = time.time()
whileLoopTime.append(stop-start)
start = time.time()
# list comprehension to initialize list
a = [0 for i in range(10000)]
stop = time.time()
listComprehensionTime.append(stop-start)
start = time.time()
# using the * operator
a = [0]*10000
stop = time.time()
starOperatorTime.append(stop-start)
print("Average time taken by for loop: " + str(sum(forLoopTime)/100))
print("Average time taken by while loop: " + str(sum(whileLoopTime)/100))
print("Average time taken by list comprehensions: " + str(sum(listComprehensionTime)/100))
print("Average time taken by * operator: " + str(sum(starOperatorTime)/100)) 輸出
Average time taken by for loop: 0.00623725175858 Average time taken by while loop: 0.00887670278549 Average time taken by list comprehensions: 0.00318484544754 Average time taken by * operator: 0.000371544361115
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP