use*_*312 229 python performance coding-style list timeit
在Python中创建新空列表的最佳方法是什么?
l = []
Run Code Online (Sandbox Code Playgroud)
要么
l = list()
Run Code Online (Sandbox Code Playgroud)
我问这个是因为两个原因:
unu*_*tbu 318
以下是如何测试哪一段代码更快的方法:
% 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
Run Code Online (Sandbox Code Playgroud)
但是,在实践中,这种初始化很可能只是程序的一小部分,所以担心这可能是错误的.
可读性非常主观.我更喜欢[],但是一些知识渊博的人,比如Alex Martelli,更喜欢list()因为它是可以发音的.
Nas*_*nov 128
list()本质上比慢[],因为
有符号查找(如果你不只是将列表重新定义为其他内容,那么python就无法事先知道!),
有函数调用,
然后它必须检查是否传递了可迭代的参数(因此它可以创建包含元素的列表)ps.在我们的情况下没有,但有"如果"检查
在大多数情况下,速度差异不会产生任何实际差异.