1

I have very simple example in Python:

class Solution(object):

    def grid(self, m, n):
        grid = [[0] * n] * m
        grid[0][0] = 1
        print(grid)


Solution().grid(5, 3)

When I run this code, it prints [[1, 0, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0]]

I'd expect it'd print [[1, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]

I'm running Python 3.8.5

What am I missing here?

Patrik Mihalčin
  • 3,341
  • 7
  • 33
  • 68
  • 2
    Use a list comprehension `grid = [[0 for _ in range(n)] for _ in range(m)]` or numpy `grid = numpy.zeros((m, n))` – azro Jan 06 '21 at 11:50

0 Answers0