优草派  >   Python

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

罗西汉            来源:优草派

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

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

一、示例比较

以一个很简单的例子来说明,分别计算list和中括号创建列表所需的时间就可以很直观的看到它们之间的差距,示例如下:

import timeit
timeit.timeit('[]', number=10**7)
timeit.timeit('list()', number=10**7)
0.47
1.7

从结果上可以看出,list()函数创建列表的速度比中括号[]慢了将近三倍,这里进行测算的是创建空列表所需的时间。实际上应用起来差距不会有这么大,但是却绝对不会小。

二、原因分析

在命令行输入from dis import dis这个命令就可以看到这两种方式的执行过程是怎么样的,相比于中括号[]创建列表,list()函数在执行时会有三个指令,比中括号多了一个。

这是因为解释器可以直接根据中括号[]就找到这次要执行的操作时创建一个列表,但是对于list它不是直接识别的。它是先需要在作用域之中逐一去查找,然后再没找到后回去读取list()后的内容。这时候就识别除了它是函数,才会将其当做对象进行调用。

总的来说,创建列表是中括号[]的效率是高于list()函数的,这是因为解释器在对list函数进行解析时需要一层层的进行查找,而中括号不需要。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行