6

可能重复:
在 Python 中创建一个列表 - 偷偷摸摸地发生了什么?
在 Python 中创建一个空列表

考虑以下:

mylist = list()

和:

mylist = []

list()使用或[]- 在某些情况下是否应该使用其中一个有什么好处?

4

2 回答 2

20

对于空列表,我建议使用[]. 这会更快,因为它避免了对内置名称的名称查找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
于 2012-08-02T15:06:26.743 回答
4

两者是完全等价的,只是可以重新定义标识符list以引用不同的对象。因此,[]除非您希望能够重新定义list为新类型,否则使用它会更安全。

从技术上讲,使用[]会稍微快一些,因为它避免了名称查找。这在任何情况下都不太可能是重要的,除非程序不断地疯狂地分配列表。

正如 Sven 所指出的,list它还有其他用途,但当然这个问题并没有问到这些用途。

于 2012-08-02T15:06:59.023 回答