我做了一個小測試:爲什麼在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是的。 –