购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

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操作效率的提升也越明显。 PLQNpHbzlSBgfTEvzG8op/VmbNswgXRq6hpAHVJDTa/Jabgd7x1aQ9NAIV/X2fLq

点击中间区域
呼出菜单
上一章
目录
下一章
×