Creating an empty list in Python
在Python中创建新的空列表的最佳方法是什么?
1 | l = [] |
或
1 | l = list() |
我这样问是因为两个原因:
下面是如何测试哪段代码更快:
1 2 3 4 5 | % 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 |
然而,在实践中,这个初始化很可能是程序中非常小的一部分,因此担心这个问题可能是错误的。
可读性是非常主观的。我更喜欢
有符号查找(如果不只是将列表重新定义为其他内容,Python就无法提前知道!),
有函数调用,
然后,它必须检查是否传递了可iterable参数(以便它可以用它的元素创建列表)ps。在我们的例子中没有,但是有"if"检查
但在大多数情况下,速度差并不能产生实际的差异。
我用的是
我不太清楚,但根据我的经验,JPCGT实际上是对的。下面的示例:如果我使用下面的代码
1 2 | t = [] # implicit instantiation t = t.append(1) |
在解释器中,调用t只会给我"t",不带任何列表,如果我附加了其他内容,例如
1 | t = t.append(2) |
我得到错误"'nonetype'对象没有属性'append'"。但是,如果我创建列表
1 | t = list() # explicit instantiation |
然后就可以了。