Python – 2D Array Initialization

>>> two_d_array = [[0]*3]*3
>>> print(two_d_array)
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
>>> two_d_array[0][0] = 1
>>> print(two_d_array)
[[1, 0, 0], [1, 0, 0], [1, 0, 0]]

Doesn’t work properly, see here.

>>> two_d_array = [[0 for x in range(0,3)] for y in range(0,3)]
>>> print(two_d_array)
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
>>> two_d_array[0][0] = 1
>>> print(two_d_array)
[[1, 0, 0], [0, 0, 0], [0, 0, 0]]

This works properly.

Leave a Reply