pythonlist

How to grow a list to fit a given capacity in Python


I'm a Python newbie. I have a series of objects that need to be inserted at specific indices of a list, but they come out of order, so I can't just append them. How can I grow the list whenever necessary to avoid IndexErrors?

def set(index, item):
    if len(nodes) <= index:
        # Grow list to index+1
    nodes[index] = item

I know you can create a list with an initial capacity via nodes = (index+1) * [None] but what's the usual way to grow it in place? The following doesn't seem efficient:

for _ in xrange(len(nodes), index+1):
    nodes.append(None)

In addition, I suppose there's probably a class in the Standard Library that I should be using instead of built-in lists?


Solution

  • This is the best way to of doing it.

    >>> lst.extend([None]*additional_size)