如何使用 Python 讓迴圈跑得更快?
這是一個與語言無關的問題。幾乎每種語言中都有迴圈,並且相同的原則普遍適用。你需要意識到,在迴圈最佳化方面,編譯器會完成大部分繁重的工作,但作為一名程式設計師,你也需要使迴圈得到最佳化。
認識到每次迴圈迭代都會執行放入迴圈中的所有內容非常重要。最佳化迴圈的關鍵是將它們所做的內容最小化。即使表面上看起來非常快速的運算,如果重複多次,也會花費很長時間。執行一次需要 1 微秒的運算,一百萬次將花費 1 秒才能完成。
不要在迴圈中或甚至在迴圈的起始條件中執行類似 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))
你還可以使用諸如迴圈展開 (https://en.wikipedia.org/wiki/Loop_unrolling) 的技術,這是一種迴圈轉換技術,試圖以犧牲二進位制大小為代價最佳化程式的執行速度,這種方法稱為空間時間權衡。
使用諸如 map、filter 等函式來替代明確的 for 迴圈,也可以提供一些效能提升。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP