Tôi đang sử dụng danh sách các danh sách để lưu trữ ma trận trong python. Tôi đã cố gắng khởi tạo một ma trận Zero 2x3 như sau.Tạo danh sách các danh sách theo cách pythonic
mat=[[0]*2]*3
Tuy nhiên, khi tôi thay đổi giá trị của một trong những mặt hàng trong ma trận, nó thay đổi giá trị của mục nhập trong mỗi liên tiếp, kể từ id của mỗi hàng trong mat
là như nhau. Ví dụ: sau khi chỉ định
mat[0][0]=1
mat
là [[1, 0], [1, 0], [1, 0]]
.
Tôi biết tôi có thể tạo ra các ma trận Zero, sử dụng một vòng lặp như sau,
mat=[[0]*2]
for i in range(1,3):
mat.append([0]*2)
nhưng bất cứ ai có thể cho tôi một cách pythonic hơn?
Nên có một-- và tốt nhất là chỉ có một - cách rõ ràng để thực hiện điều đó. ;-) – Ubiquitous