I am not sure what is the difference between multi_list1 and other lists in the way I declared them. When I print them before assignment, all three are the same.
When I print all the lists after assignment, I get
- multi_list = [[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8], [0, 3, 6, 9, 12]]
- multi_list1 = [[0, 3, 6, 9, 12], [0, 3, 6, 9, 12], [0, 3, 6, 9, 12], [0, 3, 6, 9, 12]]
- multi_list2 = [[0, 0, 0, 0, 0], [0, 1, 2, 3, 4], [0, 2, 4, 6, 8], [0, 3, 6, 9, 12]]
row_num = 4
col_num = 5
multi_list = [[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]
multi_list1 = [[0]*col_num]*row_num
multi_list2 = [[0 for _ in range(col_num)] for _ in range(row_num)]
print(multi_list)
print(multi_list1)
print(multi_list2)
for row in range(row_num):
for col in range(col_num):
multi_list[row][col]= row*col
multi_list1[row][col]= row*col
multi_list2[row][col]= row*col
print(multi_list)
print(multi_list1)
print(multi_list2)