- Python進階編程:編寫更高效、優雅的Python代碼
- 劉宇宙 謝東 劉艷
- 417字
- 2021-04-30 12:39:36
2.1.2 字符串操作效率
假如有兩個字符串“Python”和“Ruby”,在Java或C#中都可以通過“+”操作符將兩個字符串連接在一起,得到一個新的字符串——PythonRuby。
Python中同樣提供了利用操作符連接字符串的功能。不過,Python中通過“+”操作符進行字符串連接的方法效率極其低下。其根源在于Python中的String對象是一個不可變對象,這就意味著當進行字符串連接時,實際上要創建一個新的String對象。如果要連接N個String對象,就必須進行N-1次的內存申請及內存搬運工作,這會嚴重影響Python的執行效率。
官方推薦的做法是利用String對象的join操作來對存儲在list或tuple中的一組String對象進行連接,這種做法只需要分配一次內存,大大提高了執行效率。
執行join操作時,會首先統計在list中一共有多少個String對象,并統計這些String對象所維護的字符串一共有多長,然后申請內存,將list中所有的String對象維護的字符串都復制到新開辟的內存空間,這個過程只進行一次內存空間的申請,就可以完成N個String對象的連接操作。相比于“+”操作符,待連接的String對象越多,join操作效率的提升也越明顯。
推薦閱讀
- 深度實踐OpenStack:基于Python的OpenStack組件開發
- Visual C++程序設計教程
- 嵌入式軟件系統測試:基于形式化方法的自動化測試解決方案
- Linux C/C++服務器開發實踐
- Instant Apache Stanbol
- Cross-platform Desktop Application Development:Electron,Node,NW.js,and React
- 高級C/C++編譯技術(典藏版)
- 鋒利的SQL(第2版)
- 琢石成器:Windows環境下32位匯編語言程序設計
- Spring Boot Cookbook
- 編程與類型系統
- Processing創意編程指南
- Python Social Media Analytics
- 深入淺出 HTTPS:從原理到實戰
- C語言程序設計實驗指導與習題精解