Python - Mảng 2D

Mảng hai chiều là một mảng trong một mảng. Nó là một mảng của các mảng. Trong kiểu mảng này, vị trí của một phần tử dữ liệu được tham chiếu bởi hai chỉ số thay vì một. Vì vậy, nó đại diện cho một bảng với các hàng một cột dữ liệu. Trong ví dụ dưới đây về mảng hai chiều, hãy quan sát rằng bản thân mỗi phần tử mảng cũng là một mảng.

Hãy xem xét ví dụ về việc ghi nhiệt độ 4 lần một ngày, mỗi ngày. Một số lần thiết bị ghi có thể bị lỗi và chúng tôi không thể ghi dữ liệu. Dữ liệu này trong 4 ngày có thể được trình bày dưới dạng một mảng hai chiều như bên dưới.

Day 1 - 11 12 5 2 
Day 2 - 15 6 10 
Day 3 - 10 8 12 5 
Day 4 - 12 15 8 6

Dữ liệu trên có thể được biểu diễn dưới dạng một mảng hai chiều như bên dưới.

T = [[11, 12, 5, 2], [15, 6,10], [10, 8, 12, 5], [12,15,8,6]]

Truy cập các giá trị trong một mảng hai chiều

Các phần tử dữ liệu trong hai mảng trái dấu có thể được truy cập bằng cách sử dụng hai chỉ số. Một chỉ mục đề cập đến mảng chính hoặc mảng mẹ và một chỉ mục khác đề cập đến vị trí của phần tử dữ liệu trong mảng bên trong. Nếu chúng ta chỉ đề cập đến một chỉ mục thì toàn bộ mảng bên trong được in cho vị trí chỉ mục đó. Ví dụ dưới đây minh họa cách nó hoạt động.

from array import *

T = [[11, 12, 5, 2], [15, 6,10], [10, 8, 12, 5], [12,15,8,6]]

print(T[0])

print(T[1][2])

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

[11, 12, 5, 2]
10

Để in ra toàn bộ mảng hai chiều, chúng ta có thể sử dụng vòng lặp python for như hình dưới đây. Chúng tôi sử dụng end of line để in ra các giá trị trong các hàng khác nhau.

from array import *

T = [[11, 12, 5, 2], [15, 6,10], [10, 8, 12, 5], [12,15,8,6]]
for r in T:
    for c in r:
        print(c,end = " ")
    print()

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

11 12 5 2 
15 6 10 
10 8 12 5 
12 15 8 6

Chèn giá trị trong mảng hai chiều

Chúng ta có thể chèn các phần tử dữ liệu mới vào vị trí cụ thể bằng cách sử dụng phương thức insert () và chỉ định chỉ mục.

Trong ví dụ dưới đây, một phần tử dữ liệu mới được chèn vào vị trí chỉ mục 2.

from array import *
T = [[11, 12, 5, 2], [15, 6,10], [10, 8, 12, 5], [12,15,8,6]]

T.insert(2, [0,5,11,13,6])

for r in T:
    for c in r:
        print(c,end = " ")
    print()

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

11 12 5 2 
15 6 10 
0 5 11 13 6 
10 8 12 5 
12 15 8 6

Cập nhật giá trị trong mảng hai chiều

Chúng ta có thể cập nhật toàn bộ mảng bên trong hoặc một số phần tử dữ liệu cụ thể của mảng bên trong bằng cách gán lại các giá trị bằng cách sử dụng chỉ số mảng.

from array import *

T = [[11, 12, 5, 2], [15, 6,10], [10, 8, 12, 5], [12,15,8,6]]

T[2] = [11,9]
T[0][3] = 7
for r in T:
    for c in r:
        print(c,end = " ")
    print()

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

11 12 5 7 
15 6 10 
11 9 
12 15 8 6

Xóa giá trị trong mảng hai chiều

Chúng ta có thể xóa toàn bộ mảng bên trong hoặc một số phần tử dữ liệu cụ thể của mảng bên trong bằng cách gán lại các giá trị bằng phương thức del () với chỉ mục. Nhưng trong trường hợp bạn cần xóa các phần tử dữ liệu cụ thể ở một trong các mảng bên trong, thì hãy sử dụng quy trình cập nhật được mô tả ở trên.

from array import *
T = [[11, 12, 5, 2], [15, 6,10], [10, 8, 12, 5], [12,15,8,6]]

del T[3]

for r in T:
    for c in r:
        print(c,end = " ")
    print()

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

11 12 5 2 
15 6 10 
10 8 12 5