可能重复:
Creating a list in Python- something sneaky going on?
Creating an empty list in Python
请考虑以下事项:
mylist = list()
和
mylist = []
使用list()
或[]
有什么好处 - 在特定情况下是否可以使用另一个?
答案 0 :(得分:17)
对于空列表,我建议使用[]
。这会更快,因为它避免了内置名称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
答案 1 :(得分:4)
这两个是完全等效的,除了可以重新定义标识符list
以引用不同的对象。因此,除非您希望能够将[]
重新定义为新类型,否则使用list
会更安全。
从技术上讲,使用[]
会稍微快一些,因为它可以避免名称查找。在任何情况下,这都不太可能是重要的,除非该计划不断和激烈地分配列表。
正如Sven所说,list
还有其他用途,但当然问题不在于此。