Tại sao m và m1 lại khác nhau nhỉ?
m = [[0]*5]*3
m[0][3] = 999
print(m)
m1 = [[0,0,0,0,0],[0,0,0,0,0,],[0,0,0,0,0]]
m1[0][3] = 999
print(m1)
Tại sao m và m1 lại khác nhau nhỉ?
m = [[0]*5]*3
m[0][3] = 999
print(m)
m1 = [[0,0,0,0,0],[0,0,0,0,0,],[0,0,0,0,0]]
m1[0][3] = 999
print(m1)
tmp = [0]*5
sẽ ra list có 5 số 0
Tuy nhiên [tmp]*3
lại ra [tmp, tmp, tmp]
là 3 tham chiếu của cùng một list
Thật ra, trong cả hai trường hợp chỉ có list chứa đựng là đối tượng mới duy nhất. Điểm khác nhau là (đối tượng) số 0 không thể biến thành số 1 (immutable).