Python 中常见的反模式是在循环中使用 +
连接字符串序列。这很糟糕,因为 Python 解释器必须为每次迭代创建一个新的字符串对象,并且最终要花费二次方的时间。(在某些情况下,CPython 的最新版本显然可以对此进行优化,但其他实现不能,因此不鼓励程序员依赖这种方法。)''.join
是这样做的正确方法。
但是,我听说过(包括 Stack Overflow) ,永远不会应该使用 +
进行字符串串联,而不是总是使用 ''.join
或格式化字符串。我不明白如果你只连接两个字符串为什么会这样。如果我的理解是正确的,它不应该采取二次时间,我认为 a + b
是更干净和更易读的 ''.join((a, b))
或 '%s%s' % (a, b)
。
使用 +
连接两个字符串是好的做法吗? 还是有我没有意识到的问题?