私は自分のコードからもう少しパフォーマンスを絞り出そうとしています。最近、この Python wiki ページを閲覧しているときに、次の主張を見つけました。
複数の割り当ては、個別の割り当てよりも遅くなります。たとえば、「x,y=a,b」は「x=a; y=b」よりも遅くなります。
好奇心が強い、私はそれをテストしました(Python 2.7で):
$ python -m timeit "x, y = 1.2, -1.4"
10000000 loops, best of 3: 0.0365 usec per loop
$ python -m timeit "x = 1.2" "y = -1.4"
10000000 loops, best of 3: 0.0542 usec per loop
順序を変えて何度か繰り返しましたが、複数の割り当てスニペットは、個別の割り当てよりも一貫して少なくとも 30% 優れたパフォーマンスを発揮しました。明らかに、変数の割り当てを含むコードの部分が重大なボトルネックの原因になることはありませんが、それでも私の好奇心は刺激されます。ドキュメントが別の方法で提案しているのに、なぜ複数の代入は個々の代入より明らかに速いのですか?
編集:
2 つ以上の変数への代入をテストしたところ、次の結果が得られました。
傾向はほぼ一貫しているようです。誰でも再現できますか?
(CPU: インテル Core i7 @ 2.20GHz)