一尘不染

list()和[]有什么区别?

python

以下代码之间有什么区别:

foo = list()

foo = []

Python建议采用一种做事方式,但有时似乎不止一种。


阅读 165

收藏
2020-12-20

共1个答案

一尘不染

一个是函数调用,一个是文字:

>>> import dis
>>> def f1(): return list()
... 
>>> def f2(): return []
... 
>>> dis.dis(f1)
  1           0 LOAD_GLOBAL              0 (list)
              3 CALL_FUNCTION            0
              6 RETURN_VALUE        
>>> dis.dis(f2)
  1           0 BUILD_LIST               0
              3 RETURN_VALUE

使用第二种形式。它更具Python风格,并且可能更快(因为它不涉及加载和调用单独的函数)。

2020-12-20