Python cung cấp nhiều cách để tạo danh sách/mảng 2 chiều. Tuy nhiên, người ta phải biết sự khác biệt giữa các cách này vì chúng có thể tạo ra các phức tạp trong mã có thể rất khó để truy vết.
Ví dụ
rows, cols = (5, 5)
arr = [[0]*cols]*rows
# thay đổi phần tử đầu tiên của hàng 1 thành 1 và in mảng
arr[0][0] = 1
for row in arr:
print(row)
arr = [[0 for i in range(cols)] for j in range(rows)]
# lại trong mảng mới này hãy thay đổi phần tử đầu tiên của hàng đầu tiên
# thành 1 và in mảng
arr[0][0] = 1
for row in arr:
print(row)
Đầu ra
[1, 0, 0, 0, 0] [1, 0, 0, 0, 0] [1, 0, 0, 0, 0] [1, 0, 0, 0, 0] [1, 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, 0, 0]