Initialise a list to a specific length in Python [duplicate] Initialise a list to a specific length in Python [duplicate] python python

Initialise a list to a specific length in Python [duplicate]


If the "default value" you want is immutable, @eduffy's suggestion, e.g. [0]*10, is good enough.

But if you want, say, a list of ten dicts, do not use [{}]*10 -- that would give you a list with the same initially-empty dict ten times, not ten distinct ones. Rather, use [{} for i in range(10)] or similar constructs, to construct ten separate dicts to make up your list.


list multiplication works.

>>> [0] * 10[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]


In a talk about core containers internals in Python at PyCon 2012, Raymond Hettinger is suggesting to use [None] * n to pre-allocate the length you want.

Slides available as PPT or via Google

The whole slide deck is quite interesting.The presentation is available on YouTube, but it doesn't add much to the slides.