Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I initialize a one-dimensional array of two-dimensional elements in Python?

Tags:

python

arrays

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?

like image 545
Kobi Avatar asked Jul 02 '26 18:07

Kobi


1 Answers

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.

like image 109
Óscar López Avatar answered Jul 04 '26 09:07

Óscar López