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:多重赋值与单个赋值的速度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
编程基础网
本文标题为:Python:多重赋值与单个赋值的速度
基础教程推荐
猜你喜欢
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
- 尝试制作WhatsApp机器人 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
