Python创建列表使用中括号和list那个效率更高?这篇文章告诉你

在python之中创建列表的时候经常会使用中括号[]和list()函数,他们两个的出的结果看起来是没有什么不同的 。但是在内部的程序执行过程里,他们的执行效率是不一样的 。本篇文章将会详细分析中括号[]和list()函数创建列表那个效率更高及其原因,往下看看吧 。

Python创建列表使用中括号和list那个效率更高?这篇文章告诉你

文章插图
一、示例比较
以一个很简单的例子来说明,分别计算list和中括号创建列表所需的时间就可以很直观的看到它们之间的差距,示例如下:
import timeittimeit.timeit('[]', number=10**7)timeit.timeit('list()', number=10**7)0.471.7从结果上可以看出,list()函数创建列表的速度比中括号[]慢了将近三倍,这里进行测算的是创建空列表所需的时间 。实际上应用起来差距不会有这么大,但是却绝对不会小 。
二、原因分析
在命令行输入from dis import dis这个命令就可以看到这两种方式的执行过程是怎么样的,相比于中括号[]创建列表,list()函数在执行时会有三个指令,比中括号多了一个 。
这是因为解释器可以直接根据中括号[]就找到这次要执行的操作时创建一个列表,但是对于list它不是直接识别的 。它是先需要在作用域之中逐一去查找,然后再没找到后回去读取list()后的内容 。这时候就识别除了它是函数,才会将其当做对象进行调用 。
【Python创建列表使用中括号和list那个效率更高?这篇文章告诉你】总的来说,创建列表是中括号[]的效率是高于list()函数的,这是因为解释器在对list函数进行解析时需要一层层的进行查找,而中括号不需要 。

    推荐阅读