'Assigning value in python 2d list [duplicate]

I have previously worked in C, I am facing problem in assigning value in 2d list

graph = [[0]*3]*3
print(graph)
graph[0][1] = 3
print(graph)

Output

[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 3, 0], [0, 3, 0], [0, 3, 0]]

Expected output :

[[0, 3, 0], [0, 0, 0], [0, 0, 0]]

Is there any way to assign values other than using numpy array as answered in Assigning values Python 2D Array



Solution 1:[1]

you can use a for loop to do this simply

a = []
for i in range(3):
    a.append([0]*3)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 NALLAPANENIVENKATESH CHOWDARY