前言
我們都知道就速度而言,Python是比Java或C慢得多的語言。Python是動態類型化的語言,這意味著它的變量類型未預定義。動態類型是一把雙刃劍,它成就了Python成為一種優雅的語言,同時也讓Python運行速度減慢。讓我們看看一些可能對您的整體代碼性能產生重大影響的小技巧。
1. 了解你的內置函數
這一技巧有助于節省您的時間和時間與您的代碼。當我開始學習Python的時候,我以前從不使用內置函數,所以為了完成我的絕對值代碼,我會運行一個for循環而不是使用abs()。為了把一個字符轉換成大寫字母,我甚至會把它轉換成與大寫字母等價的ASCII字符,因為我拒絕學習字符串函數。
如果你對Python是認真的,那么學習所有的Python內置函數是值得的,因為它不僅使你的代碼更整潔、更可重用,你還可以通過簡單地使用Python提供給你的東西來避免代碼中人為的低效率。
2. A,B=B,A
我確信您以前使用過“temp”作為占位符變量來交換兩個元素。我能告訴你的是,這個方法只在課堂上使用,不應該在編程時使用。
相反,可以通過將變量寫成a,b = b,a 來進行簡單的變量交換。這將在一行中切換所有變量,并防止解釋器超過三個(temp, a,b交換方法)。
這是一個小小的修復,可以節省幾分之一秒的時間——但從長遠來看,這些時間會累積起來。
3. 只在函數內導入
作為一個初學者,我們都喜歡大量導入我們認為在代碼頂部需要的所有東西。我記得有一次我導入了NumPy, Pandas, Scipy, Warnings, Math, Math, Os等等,當我完成我的代碼時,我只使用了三個庫。這會耗盡你電腦的內存。
相反,在相應的函數中導入所需的庫(如果多個函數需要相同的庫,則需要多次導入)。這意味著解釋器只會在你調用函數時完成導入,而不是在代碼的開頭。現在Python庫被緩存了,所以當你調用不同的函數時,它不會在每次導入時占用額外的時間。然而,當您最終導入頂部的所有內容,甚至不使用代碼中的一些函數時,它確實會占用更多的時間。
4. 使用Numba
這是一個小眾技巧,主要幫助使用NumPy或科學編程的人。Numba是一個Python JIT編譯器,它對函數應用裝飾器,將一些函數轉換為超快的字節代碼(幾乎與C一樣快)。Numba開始因其簡單和龐大的功能而出名。
Numba目前也支持其他功能,但是,我認為它目前主要是為科學Python開發人員提供的。
5. 從集合中檢查,而不是從列表中
這是Python優化書中最古老的技巧之一。如果存在元素,不要在列表中搜索。相反,將列表設置為set(set(list)),然后執行檢查“element in set(list)”。這個小小的改變將提高您的運行時效率,因為Python使用了可調整大小的哈希表,將平均時間復雜度提高到了O(1)。
然而,遍歷集合并不比遍歷列表快。
責編AJX
-
函數
+關注
關注
3文章
4344瀏覽量
62813 -
源代碼
+關注
關注
96文章
2946瀏覽量
66836 -
python
+關注
關注
56文章
4801瀏覽量
84883
發布評論請先 登錄
相關推薦
評論