30/09/2018, 22:09
List 2D trong Python
box=[]
values=[]
for i in range(2):
values.append('-')
for i in range(2):
box.append(values)
box[0][1]='P'
print (box)
Sao lúc chạy nó in ra :
[[’-’, ‘P’], [’-’, ‘P’]]
nhỉ ạ?
để nó in ra
[[’-’, ‘P’], [’-’, ‘-’]] thi làm thế nào ạ?
Bài liên quan





2 cái giống nhau là do cùng gán đến values. Để tạo một values khác của box, bạn thêm dòng này trước box.append
values=[]và chuyển vòng for khởi tạo cho values xuống dưới dòng đóPython truy cập đến list thông qua
referencecho nên khi bạnthực ra bạn chỉ thêm vào
box2referencesđến cùng một objectvaluesduy nhất. Vì thế, bạn thay đổivalueskiểu gì thì 2 phần tử củaboxcũng luôn giống y sì nhau. Để tránh điều này, bạn có thể copyvaluesra một object khác nhưng cùng giá trị