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).
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?