[] and {} vs list() and dict(), which is better?
Question: I understand that they are both essentially the same thing, but in terms of
style, which is the better (more Pythonic) one to use to create an empty list
or dict?


Answer: In terms of speed, it's no competition for empty lists/dicts:

    
    
    >>> from timeit import timeit
    >>> timeit("[]")
    0.040084982867934334
    >>> timeit("list()")
    0.17704233359267718
    >>> timeit("{}")
    0.033620194745424214
    >>> timeit("dict()")
    0.1821558326547077
    

and for non-empty:

    
    
    >>> timeit("[1,2,3]")
    0.24316302770330367
    >>> timeit("list((1,2,3))")
    0.44744206316727286
    >>> timeit("list(foo)", setup="foo=(1,2,3)")
    0.446036018543964
    >>> timeit("{'a':1, 'b':2, 'c':3}")
    0.20868602015059423
    >>> timeit("dict(a=1, b=2, c=3)")
    0.47635635255323905
    >>> timeit("dict(bar)", setup="bar=[('a', 1), ('b', 2), ('c', 3)]")
    0.9028228448029267
    

Also, using the bracket notation let's you use list and dictionary
comprehensions, which may be reason enough.

