什么是在Python中创建一个新的空单的最好方法?
l = []
要么
l = list()
我问这是因为两个原因:
- 技术上的原因,因为这是更快的。 (创建类导致的开销?)
- 代码的可读性 - 这是一个标准的约定。
什么是在Python中创建一个新的空单的最好方法?
l = []
要么
l = list()
我问这是因为两个原因:
这里是你如何测试这一块的代码是速度快:
% python -mtimeit "l=[]"
10000000 loops, best of 3: 0.0711 usec per loop
% python -mtimeit "l=list()"
1000000 loops, best of 3: 0.297 usec per loop
然而,在实践中,这种初始化是最有可能你的程序的一个非常小的部分,所以担心这可能是执迷不悟。
可读性是非常主观的。 我喜欢[]
但一些非常有见地的人,像亚历克斯·马尔泰利,喜欢list()
因为它是可发音 。
list()
是固有地慢于[]
因为
有符号查找(没有办法让蟒蛇提前知道,如果你不只是重新定义列表别的东西!)
有函数调用,
那么它必须检查是否有可迭代的参数传递(因此它可以创建一个从它的元素列表)PS。 没有在我们的情况,但有“如果”检查
在大多数情况下,速度差不会做出任何实际的差异,但。
我用[]
我真的不知道这件事情,但在我看来,根据经验,这jpcgt实际上是正确的。 下面的例子:如果我使用下面的代码
t = [] # implicit instantiation
t = t.append(1)
在翻译中,然后调用T得到我只是“T”没有任何名单,如果我追加别的东西,如
t = t.append(2)
我得到的错误“‘NoneType’对象有没有属性‘追加’”。 但是,如果我创建的列表中
t = list() # explicit instantiation
然后正常工作。