我做了一个小测试:为什么在Python中返回一个元组比多个值更快?
In [12]: def test1():
...: return 1,2,3
...:
In [13]: def test2():
...: return (1,2,3)
...:
In [14]: %timeit a,b,c = test1()
最慢的运行速度比最快的耗时较长66.88倍。这可能意味着正在缓存中间结果。 千万循环,最好的3:每循环
In [15]: %timeit a,b,c = test2()
92.7 ns的最慢的运行速度比最快的耗时较长74.43倍。这可能意味着正在缓存中间结果。 10000000循环,最好的3:每循环80.1纳秒
返回一个元组比返回多个值快大约15%。为什么这样?
'test1'和'test2'等价于字节码 – vaultah
@vaultah:所以1,2,3也是一个元组? –
@ Jean-FrançoisFabre是的。 –