Python|为什么列表推导式会更快

Python|为什么列表推导式会更快

1、列表推导式

你一定听过这样一个说法,尽量使用列表推导式,而不是用list.append方法来初始化一个列表,那么究竟为何列表推导式会更快呢?

这是因为,列表推导式被编译后的字节码执行速度更快。python当然不是一门编译型语言,但是它还是要被解析成二进制的字节码才能被执行,执行它的正是python解释器。

更多Python视频、源码、资料加群960410445免费获取

2、dis

这个模块原生的代码分析模块,通过它,我们可以查看python代码被编译后的字节码

3、示例

Python|为什么列表推导式会更快

执行上面这段代码,输出内容为

Python|为什么列表推导式会更快

对比一下,不难发现,两个段字节码最大的区别在于添加元素的部分

func1 中,先要LOAD_ATTR,将append方法加载进来,然后CALL_FUNCTION,也就是执行

而在func2中,则直接调用了LIST_APPEND命令来添加元素,就是这一个小小的区别,使得列表推导式的速度会更快,因为func1相比于func2多了一个LOAD_ATTR的过程,要明白,这条命令在每次循环中都会被执行,一旦循环的次数多起来,就必然拖慢速度

猜你喜欢

转载自blog.csdn.net/sinat_38682860/article/details/85159505