追求运行效率时,连接字符串尽量用join
一般来说,要连接多个字符串,用操作符“+”即可。这是最通俗易懂的、自然的做法。
比如:
largeString = small1 + small2 + ' something ' + small3 + ' yet more'
但其实:
Python中字符串对象是不可变的(immutable)。因此,任何对字符串的操作,包括字符串连接,都将生成新的字符串对象,而不是修改原有的字符串。连接N个字符串就会涉及到创建然后立即丢弃N-1个作为中间结果的字符串。因此,那些不产生中间结果而一次生成结果的操作的效率就会高得多。
所以,如果在某些情况下,执行效率很重要时,应该考虑使用:
largeString = ''.join(pieces)
两种效率,一个是平方增长,一个是线性增长。所以,在特定情况下,后者的优势很明显。
参见:《Python食谱-1.6.连接字符串》