Python:多重赋值与单个赋值的速度

Python: multiple assignment vs. individual assignment speed(Python:多重赋值与单个赋值的速度)
本文介绍了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:多重赋值与单个赋值的速度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)