Programming2021-05-071 min read
Cách tạo list rỗng trong python
Cách 1: a=[[0]*6]*5 print(a) a[1][1]=-1 print(a) Output: [[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0,
Nguyen Pham
•Xin chào. Mình thích lập trình và công nghệ. Đây là blog mình chia sẻ lại các kiến thức về lập trình, công nghệ.
Cách 1:
codea=[[0]*6]*5 print(a) a[1][1]=-1 print(a)
Output:
code[[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]] [[0, -1, 0, 0, 0, 0], [0, -1, 0, 0, 0, 0], [0, -1, 0, 0, 0, 0], [0, -1, 0, 0, 0, 0], [0, -1, 0, 0, 0, 0]]
Chuyện gì đang xảy ra. Nếu như mình nghĩ thì chỉ có một ô được thay đổi thành -1 nhưng ở đây tất cả đều đổi. Tại sao?
Với cách này thì chúng đều trỏ đến cùng một đối tượng. do vây khi thay đổi một cái nó sẽ thay đổi tất.
Tham khảo
https://stackoverflow.com/questions/6007881/what-does-the-0x-syntax-do-in-python
Be warned that they all point to the same object. This is cool for immutables like integers but a pain for things like lists.
Cách 2: Nên dùng cách này
codeb= [[0 for k in range(6)] for l in range(5)] print(b) b[1][1]=-1 print(b)
code[[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]] [[0, 0, 0, 0, 0, 0], [0, -1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]]
Tags:#Programming#Python#array#list#python