Python has several advantages over other programming languages, including its relatively simple syntax, powerful data structures, and comprehensive standard library. This last advantage is especially noteworthy—because the Python standard library contains modules that provide tools for tasks as diverse as XML processing, threading, networking, and database access, you can often find everything you need to write a complete application without ever having to download or install any additional software.
Creating a list of sizes n
In Python, we can create lists by using the list data type. This is a mutable data type, meaning we can add, remove, and edit elements in a list. A list can contain any data type, including other lists. We initialize a list with elements by using square brackets  and separating each element with a comma. If we want to create an empty list, we just use empty square brackets .
Using the * operator
You can create a list of size n by using the * operator like this:
n = 5
my_list =  * n
my_list will contain [0, 0, 0, 0, 0].
Using list comprehension
Python supports a short-hand notation for initializing lists of size n. The following will initialize a list of size n with each element set to None:
n = 5
l = [None] * n
This is an easy way to create a list of size n without having to use a loop.
Using the range function
Python’s range function is handy when you need to create a list of sequential values. All you need to do is specify the starting point and the ending point, and the range function will take care of the rest. For example, if you want a list of numbers from 0 to 9, you would use this syntax:
numbers = list(range(10))
This would create a list containing the values 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9. If you wanted to create a list of numbers from 1 to 10, you would use this syntax:
numbers = list(range(1, 11))
This would create a list containing the values 1, 2, 3, 4 5, 6 7 8 9 10. You can also specify a step value. A step value is the amount by which the sequence increases or decreases with each element. For example, if you wanted to create a list of even numbers from 0 to 10, you could use this syntax:
numbers = list(range(0 , 11 , 2))
In general, it is best to avoid using an explicit size when initializing a list in Python. If you know the approximate size of the list, it is better to use the built-in list() function which takes an iterable as an argument. This way, you don’t have to worry about accidentally creating a list that is too small or too large.