我最近比較了[]和list()的處理速度,並且驚訝地發現[]運行速度比list()快三倍以上。我跑了相同的測試與{}和dict(),結果幾乎相同:[]和{}兩個花了大約0.128sec /百萬次,而list()和dict()大約花費每個0.428sec /萬次。 後來我查了查原因,得到的結論如下: ...
我最近比較了[]和list()的處理速度,並且驚訝地發現[]運行速度比list()快三倍以上。我跑了相同的測試與{}和dict(),結果幾乎相同:[]和{}兩個花了大約0.128sec /百萬次,而list()和dict()大約花費每個0.428sec /萬次。
後來我查了查原因,得到的結論如下:
list()需要全局查找和函數調用,但[]編譯為單個指令。
Python 2.7.3 >>> import dis >>> print dis.dis(lambda: list()) 1 0 LOAD_GLOBAL 0 (list) 3 CALL_FUNCTION 0 6 RETURN_VALUE None >>> print dis.dis(lambda: []) 1 0 BUILD_LIST 0 3 RETURN_VALUE None