5

in c++ I can wrote:

int someArray[8][8];
for (int i=0; i < 7; i++)
   for (int j=0; j < 7; j++)
      someArray[i][j] = 0;

And how can I initialize multi-line arrays in python? I tried:

array = [[],[]]
for i in xrange(8):
   for j in xrange(8):
        array[i][j] = 0

5 Answers 5

7
>>> [[0]*8 for x in xrange(8)]
[[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]]
>>>
Sign up to request clarification or add additional context in comments.

Comments

7

You asked about initializing a list of lists. Its a very useful data structure, but it has an important difference from the 2D array in C++: There are no guarantees that all lines have the same length (i.e, that len(a[0])==len(a[1]) (while in C++ you do have that guarantee).

So another solution that might be handy, is using NumPy's array datatype, like this:

import numpy as np
array = np.zeros((8,8))

Comments

3

Here is a shorter way:

array = []
for i in xrange(8):
    array.append( [0] * 8 )

Comments

3
array = [[0]*8 for i in xrange(8)]

Comments

2
[[0]*8 for x in range(8)]

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.