考虑以下:
mylist = list()
和:
mylist = []
list()
使用或[]
- 在某些情况下是否应该使用其中一个有什么好处?
考虑以下:
mylist = list()
和:
mylist = []
list()
使用或[]
- 在某些情况下是否应该使用其中一个有什么好处?
对于空列表,我建议使用[]
. 这会更快,因为它避免了对内置名称的名称查找list
。内置名称也可以被全局或本地名称覆盖;这只会影响list()
,不会[]
。
但是,list()
内置函数对于将其他一些可迭代对象转换为列表很有用:
a = (1, 2, 3)
b = list(a)
为了完整起见,我的机器(Python 2.7.3rc2,Intel Core 2 Duo)上空列表的两个选项的时间:
In [1]: %timeit []
10000000 loops, best of 3: 35 ns per loop
In [2]: %timeit list()
10000000 loops, best of 3: 145 ns per loop
两者是完全等价的,只是可以重新定义标识符list
以引用不同的对象。因此,[]
除非您希望能够重新定义list
为新类型,否则使用它会更安全。
从技术上讲,使用[]
会稍微快一些,因为它避免了名称查找。这在任何情况下都不太可能是重要的,除非程序不断地疯狂地分配列表。
正如 Sven 所指出的,list
它还有其他用途,但当然这个问题并没有问到这些用途。