官术网_书友最值得收藏!

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操作效率的提升也越明顯。

主站蜘蛛池模板: 连山| 合肥市| 西林县| 新兴县| 昌吉市| 镇宁| 唐山市| 历史| 尚义县| 佛教| 巴塘县| 久治县| 津南区| 梨树县| 都安| 德阳市| 泸定县| 都昌县| 察隅县| 当阳市| 常熟市| 河北省| 家居| 若羌县| 永康市| 高雄县| 壤塘县| 松江区| 宝兴县| 南皮县| 红原县| 塘沽区| 耒阳市| 繁昌县| 咸阳市| 巴彦县| 随州市| 刚察县| 黎川县| 鹤岗市| 东台市|