【发布时间】:2017-10-10 19:06:20
【问题描述】:
我知道''.join(list) 是连接字符串的首选方法,而不是说:
for x in list:
s += x
我的问题是为什么这么快?
另外,如果我需要连接尚未在列表中的项目怎么办?仅仅为了''.join(list)而将它们放入列表中是否更快?
编辑:这与之前链接的问题不同,因为我特别想知道这些项目是否已经不在列表中,出于性能原因,是否仍建议将它们放在仅出于加入目的的列表。
【问题讨论】:
-
一般来说,您希望避免使用串联增量构建字符串时会出现的二次行为。构建字符串列表并使用
str.join保证线性行为。尽管 CPython 的最新版本将优化字符串的连接,但这并不能保证。通过将循环向下推到 C 级别,您还可以获得性能改进。
标签: python string python-2.7 list python-3.x