["python","list"]
Create an empty list with certain size in Python

How do I create an empty list that can hold 10 elements? After that, I want to assign values in that list. For example: xs = list() for i in range(0, 9): xs[i] = i However, that gives IndexError: list assignment index out of range. Why?
You cannot assign to a list like xs[i] = value, unless the list already is initialized with at least i+1 elements (because the first index is 0). Instead, use xs.append(value) to add elements to the end of the list. (Though you could use the assignment notation if you were using a dictionary instead of a list.) Creating an empty list: >>> xs = [None] * 10 >>> xs [None, None, None, None, None, None, None, None, None, None] Assigning a value to an existing element of the above list: >>> xs[1] = 5 >>> xs [None, 5, None, None, None, None, None, None, None, None] Keep in mind that something like xs[15] = 5 would still fail, as our list has only 10 elements. range(x) creates a list from [0, 1, 2, ... x-1] # 2.X only. Use list(range(10)) in 3.X. >>> xs = range(10) >>> xs [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Using a function to create a list: >>> def display(): ... xs = [] ... for i in range(9): # This is just to tell you how to create a list. ... xs.append(i) ... return xs ... >>> print display() [0, 1, 2, 3, 4, 5, 6, 7, 8] List comprehension (Using the squares because for range you don't need to do all this, you can just return range(0,9) ): >>> def display(): ... return [x**2 for x in range(9)] ... >>> print display() [0, 1, 4, 9, 16, 25, 36, 49, 64]