如何使用 Python 讓 loop 執行地更快?
這個問題與語言無關。幾乎每種語言中都有 loop,並且到處都遵循相同的原則。你需要意識到,在進行 loop 最佳化時,編譯器會完成最繁重的工作,但是作為一名程式設計師,你也需要保持 loop 的最佳化。
重要的是認識到,你放置在 loop 中的所有內容都會對每個 loop 迭代執行。最佳化 loop 的關鍵是最大程度地減少它們所做的事情。即使看起來非常快的操作,如果重複多次,也會花費很長時間。完成一項耗時 1 微秒的操作一百萬次將需要 1 秒鐘才能完成。
不要在 loop 中執行諸如 len(list) 的操作,甚至不要在它的起始條件中執行。
示例
a = [i for i in range(1000000)] length = len(a) for i in a: print(i - length)
比快得多
a = [i for i in range(1000000)] for i in a: print(i - len(a))
你還可以使用 loop 展開(https://en.wikipedia.org/wiki/Loop_unrolling)等技術,這是一種迴圈變換技術,試圖以犧牲二進位制檔案大小為代價來最佳化程式的執行速度,這是一種被稱為時空權衡的方法。
使用對映、篩選等功能,而不是顯式的 for 迴圈也能帶來一些效能改進。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP