I want to initialize an array that has X two-dimensional elements. For example, if X = 3, I want it to be [[0,0], [0,0], [0,0]]. I know that [0]*3 gives [0, 0, 0], but how do I do this for two-dimensional elements?
Try this:
m = [[0] * 2 for _ in xrange(3)]
In the above code, think of the 3 as the number of rows in a matrix, and the 2 as the number of columns. The 0 is the value you want to use for initializing the elements. Bear in mind this: if you're using Python 3, use range instead of xrange.
For a more general solution, use this function:
def create_matrix(m, n, initial=0):
return [[initial] * n for _ in xrange(m)]
For the particular case of the question:
m = create_matrix(3, 2)
print m
> [[0, 0], [0, 0], [0, 0]]
Alternatively, and if you don't mind using numpy, you can use the numpy.zeros() function as shown in Mellkor's answer.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With