Python中的mylist = list()vs mylist = []

时间:2012-08-02 15:02:28

标签: python list

  

可能重复:
  Creating a list in Python- something sneaky going on?
  Creating an empty list in Python

请考虑以下事项:

mylist = list()

mylist = []

使用list()[]有什么好处 - 在特定情况下是否可以使用另一个?

2 个答案:

答案 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还有其他用途,但当然问题不在于此。