对推荐使用+=连接字符串而不用join有疑问
shuax opened this issue · comments
我在python3.7.2上面测试join比+=快200倍
你好,二者会有性能差距,但是 200 倍我认为不太合理。方便发一下你的测试代码片段吗?
import time
def timeit(method):
def timed(*args, **kw):
ts = time.time()
ret = method(*args, **kw)
te = time.time()
print('{0} {1:.2f}s'.format(method.__name__, te - ts))
return ret
return timed
@timeit
def test1():
data = ""
for _ in range(10000):
data += "123456789"*100
return len(data)
@timeit
def test2():
data = []
for _ in range(1000000):
data.append("123456789"*100)
data = "".join(data)
return len(data)
print(test1())
print(test2())
由于test2实在太快,我多循环了100倍。
运行结果是:
test1 3.44s
9000000
test2 0.47s
900000000
我在linux上未能重现,两者速度差不多,可能是windows版本优化差吧。