m is an empty list but you are trying to write the element [0] In the first iteration, which does not exist yet.
Solution:
Try the following instead, to add a new element to the end of the list;
for l in m:
n.append(l)
It seems you never do this in practice if you wanted to copy an existing list, then you have to do;
n = list[m]
Python-like array:
Alternatively, if you want to use the python as an array in many other languages, then you have to create a list first whose elements set to be null value and later the values should be in specific positions;
m = [1, 2, 3, 5, 8, 13]
n = [None] * len(i)
#n == [None, None, None, None, None, None]
o = 0
for l in m:
n[o] = l
o += 1
Note:
The thing to realize is that a list object will not allow you to assign a value to an index that does not exist.
Another method:
You could also use a list comprehension like;
n = [l for l in m]
Or make a copy of it by using;
n =mi[:]