First of all, you should insert something in the innermost list (e.g. None). Secondly, when you use multiplication in an external list, it replicates the links in the internal list, so when you change one element, you will also change this element in all other lists:
>> parameters = [ [ [None] * 2 ]*3 ] * 10 >> print parameters [[[None, None], [None, None], [None, None]], [[None, None], [None, None], [None, None]], [[None, None], [None, None], [None, None]], [[None, None], [None, None], [None, None]], [[None, None], [None, None], [None, None]], [[None, None], [None, None], [None, None]], [[None, None], [None, None], [None, None]], [[None, None], [None, None], [None, None]], [[None, None], [None, None], [None, None]], [[None, None], [None, None], [None, None]]] >> parameters[0][0][1]=1 >> print parameters [[[None, 1], [None, 1], [None, 1]], [[None, 1], [None, 1], [None, 1]], [[None, 1], [None, 1], [None, 1]], [[None, 1], [None, 1], [None, 1]], [[None, 1], [None, 1], [None, 1]], [[None, 1], [None, 1], [None, 1]], [[None, 1], [None, 1], [None, 1]], [[None, 1], [None, 1], [None, 1]], [[None, 1], [None, 1], [None, 1]], [[None, 1], [None, 1], [None, 1]]]
Therefore, you are better off using lists:
>> parameters=[[[None for i in range(2)] for j in range(3)] for k in range(10)]
However, I would recommend using numpy , as suggested in one of the other answers.