国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

提升Python程序運行效率的6個方法

2020-02-23 00:27:20
字體:
來源:轉載
供稿:網友

Python是一個很酷的語言,因為你可以在很短的時間內利用很少的代碼做很多事情。不僅如此,它還能輕松地支持多任務,比如多進程等。Python批評者有時會說Python執行緩慢。本文將嘗試介紹6個技巧,可加速你的Python應用程序。
1.讓關鍵代碼依賴于外部包

雖然Python讓許多編程任務變得容易,但它可能并不總能為緊急的任務提供最佳性能。你可以為緊急的任務使用C、C++或機器語言編寫的外部包,這樣可以提高應用程序的性能。這些包都是不能跨平臺的,這意味著你需要根據你正在使用的平臺,尋找合適的包。簡而言之,這個方案放棄了一些應用程序的可移植性,以換取只有在特定主機上直接編程才能獲得的程序性能。這里有一些你應該考慮加入到你的“性能兵工廠”的包:

    Cython    PyInlne     PyPy     Pyrex

這些包以不同的方式提高性能。例如,Pyrex能夠擴展Python所能做的事情,例如使用C的數據類型來讓內存任務更加有效或直接。PyInIne讓你在Python應用程序中直接使用C代碼。程序中的內聯代碼單獨編譯,但它在利用C語言所能提供的效率的同時,也讓所有的代碼都在同一個地方。
2.排序時使用鍵(key)

有很多老的Python排序代碼,它們在你創建一個自定義的排序時花費你的時間,但在運行時確實能加速執行排序過程。元素排序的最好方法是盡可能使用鍵(key)和默認的sort()排序方法。例如,考慮下面的代碼:

import operatorsomelist = [(1, 5, 8), (6, 2, 4), (9, 7, 5)]somelist.sort(key=operator.itemgetter(0))somelist#Output = [(1, 5, 8), (6, 2, 4), (9, 7, 5)]somelist.sort(key=operator.itemgetter(1))somelist#Output = [(6, 2, 4), (1, 5, 8), (9, 7, 5)]somelist.sort(key=operator.itemgetter(2))somelist#Output = [(6, 2, 4), (9, 7, 5), (1, 5, 8)],

每一個實例中,根據你選擇的作為key參數部分的索引,數組進行了排序。類似于利用數字進行排序,這種方法同樣適用于利用字符串排序。
3.優化循環

每種編程語言都會強調需要優化循環。當使用Python的時候,你可以依靠大量的技巧使得循環運行得更快。然而,開發者經常漏掉的一個方法是:避免在一個循環中使用點操作。例如,考慮下面的代碼:

lowerlist = ['this', 'is', 'lowercase']upper = str.upperupperlist = []append = upperlist.appendfor word in lowerlist:  append(upper(word))  print(upperlist)  #Output = ['THIS', 'IS', 'LOWERCASE']

每一次你調用方法str.upper,Python都會求該方法的值。然而,如果你用一個變量代替求得的值,值就變成了已知的,Python就可以更快地執行任務。優化循環的關鍵,是要減少Python在循環內部執行的工作量,因為Python原生的解釋器在那種情況下,真的會減緩執行的速度。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德昌县| 石狮市| 封丘县| 阿坝县| 黄大仙区| 静安区| 东光县| 东丰县| 钟山县| 大方县| 奈曼旗| 新乡市| 北辰区| 隆化县| 湟中县| 泰宁县| 灵武市| 河北区| 曲阜市| 章丘市| 陇西县| 鸡泽县| 胶南市| 枣阳市| 札达县| 万载县| 深圳市| 岚皋县| 赤城县| 辽阳市| 高淳县| 盘锦市| 贡觉县| 洛川县| 姚安县| 雅安市| 内江市| 屏边| 左云县| 东光县| 大丰市|