我们来尝试一下吧!我们可以用timeit.timeit()多次运行语句并返回总持续时间。
在这里,我们使用s
设置变量a
and b
(不包含在总体时间中),然后运行各个选项1000万次。
>>> from timeit import timeit
>>>
>>> n = 10 * 1000 * 1000
>>> s = "a = 'start'; b = ' end'"
>>>
>>> timeit("c = a + b", setup=s, number=n)
0.4452877212315798
>>>
>>> timeit("c = f'{a}{b}'", setup=s, number=n)
0.5252049304544926
>>>
>>> timeit("c = '%s%s'.format(a, b)", setup=s, number=n)
0.6849184390157461
>>>>
>>> timeit("c = ''.join((a, b))", setup=s, number=n)
0.8546998891979456
>>>
>>> timeit("c = '%s%s' % (a, b)", setup=s, number=n)
1.1699129864573479
>>>
>>> timeit("c = '{0}{1}'.format(a, b)", setup=s, number=n)
1.5954962372779846
这表明除非您的应用程序的瓶颈是字符串连接,否则可能不值得太担心......
- 最好的情况是 1000 万次迭代约为 0.45 秒,或者每次操作大约 45 纳秒。
- 最坏的情况是 1000 万次迭代约 1.59 秒,或者每次操作大约 159 纳秒。
根据系统的性能,如果您执行以下操作,您可能会看到速度提高了几秒钟左右字面意思是数百万的操作。
请注意,根据您连接的字符串的长度(和数量)以及您运行的硬件,您的结果可能会有很大差异。