Python:多重赋值与单个赋值的速度 [英] Python: multiple assignment vs. individual assignment speed

查看:30
本文介绍了Python:多重赋值与单个赋值的速度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直希望从我的代码中获得更多的性能;最近,在浏览this Python wiki page时,我发现了这样的说法:

多重分配比单独分配慢。例如,x,y=a,b";比";x=a;y=b";慢。

好奇,我(在Python2.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%。显然,我的代码中涉及变量赋值的部分不会成为任何重大瓶颈的来源,但我的好奇心仍然被激怒了。为什么多项作业明显比单独作业快,而文档建议并非如此?

编辑:

我测试了两个以上变量的赋值,得到了以下结果:

这一趋势似乎或多或少是一致的;有人能复制它吗?

(CPU:英特尔酷睿i7@2.20 GHz)

cpu3

有趣的是,它可能在某种程度上依赖于推荐答案。这两台都是64位Linux计算机(相同的Python版本)。

英特尔(R)酷睿(TM)2双核CPU T7300@2.00 GHz的结果

$ python -V
Python 2.7.5+
$ python -m timeit "x, y = 1.2, -1.4"
10000000 loops, best of 3: 0.0554 usec per loop
$ python -m timeit "x = 1.2" "y = -1.4"
10000000 loops, best of 3: 0.0349 usec per loop

英特尔(R)奔腾(R)CPU G850@2.90 GHz的结果

$ python -V
Python 2.7.5+
$ python -m timeit "x, y = 1.2, -1.4"
10000000 loops, best of 3: 0.0245 usec per loop
$ python -m timeit "x = 1.2" "y = -1.4"
10000000 loops, best of 3: 0.0394 usec per loop

这篇关于Python:多重赋值与单个赋值的速度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆