Python Mảng 2D: Ví dụ về danh sách hai chiều

⚡ Tóm tắt thông minh

Python Mảng 2 chiều là một mảng được đặt bên trong một mảng khác, tạo thành các hàng và cột giống như một bảng. Các ví dụ dưới đây minh họa cách tạo, truy cập, chèn, cập nhật, xóa và thay đổi kích thước mảng 2 chiều.

  • 🧱 Kết cấu: Mảng 2 chiều là một mảng gồm các mảng được sắp xếp theo hàng và cột.
  • 🔢 Lập chỉ mục: Truy cập một phần tử bằng mảng[hàng][cột]; chỉ số bắt đầu từ 0.
  • Thêm và cập nhật: Thêm hàng bằng hàm insert() và thay đổi giá trị theo chỉ mục.
  • 🗑️ Xóa và thay đổi kích thước: Xóa các hàng bằng lệnh del và đếm số hàng bằng lệnh len().
  • 🔁 Lặp lại: Sử dụng các vòng lặp for lồng nhau để duyệt qua các hàng và cột.
  • 🧮 Tùy chọn NumPy: Đối với các phép tính số học phức tạp, hãy tạo mảng 2D thực sự bằng numpy.array() để tăng tốc độ.

Python Mảng 2D

Mảng hai chiều là gì? Python?

Mảng là cấu trúc dữ liệu dùng để lưu trữ các phần tử. Một mảng chỉ có thể lưu trữ các loại phần tử tương tự nhau. Hai chiều được định nghĩa là một mảng bên trong mảng. Chỉ mục của mảng bắt đầu bằng 0 và kết thúc bằng kích thước của mảng trừ 1. Chúng ta có thể tạo số lượng mảng trong một mảng.

Python Mảng 2D

Trong hình ảnh trên, chúng ta có thể thấy rằng một chỉ mục xác định duy nhất từng phần tử mảng.

Cách tạo mảng trong Python?

Chúng ta có thể tạo một mảng (danh sách) hai chiều với các hàng và cột.

cú pháp:

[[r1,r2,r3,..,rn],[c1,c2,c3,.......,cn]]

Ở đâu,

r là viết tắt của hàng và c là viết tắt của cột

Ví dụ: Sau đây là ví dụ để tạo

Mảng 2D có 4 hàng và 5 cột

array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]
#display
print(array)

Đầu ra:

[[23, 45, 43, 23, 45], [45, 67, 54, 32, 45], [89, 90, 87, 65, 44], [23, 45, 67, 32, 10]]

Truy cập các giá trị

Chúng ta có thể truy cập các giá trị bằng cách sử dụng vị trí chỉ mục

cú pháp:

Chúng ta có thể nhận giá trị hàng bằng cách sử dụng [] nhà điều hành

array[row index]

Chúng ta có thể nhận giá trị cột bằng cách sử dụng [][]

Array[row index][column index]

Ở đâu,

  • mảng là một mảng đầu vào
  • chỉ mục hàng là vị trí chỉ mục hàng bắt đầu từ 0
  • chỉ mục cột là vị trí chỉ mục cột bắt đầu từ 0 liên tiếp.

Ví dụ:

Trong ví dụ này, chúng ta sẽ truy cập các giá trị bằng cách sử dụng vị trí chỉ mục

#creare 2D array with 4 rows and 5 columns
array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]

#display
print(array)

#get the first row
print(array[0])

#get the third row
print(array[2])

#get the first row third element
print(array[0][2])

#get the third row forth element
print(array[2][3])

Đầu ra:

[[23, 45, 43, 23, 45], [45, 67, 54, 32, 45], [89, 90, 87, 65, 44], [23, 45, 67, 32, 10]]
[23, 45, 43, 23, 45]
[89, 90, 87, 65, 44]
43
65

Chúng ta cũng có thể truy cập các phần tử bằng cách sử dụng for loop

cú pháp:

for rows in the array:
  for columns in rows:
    print(columns)

Ở đâu,

  • các hàng được sử dụng để lặp lại từng hàng
  • cột được sử dụng để lặp lại các giá trị có trong mỗi hàng.

Ví dụ:

Creare 2D array with 4 rows and 5 columns
array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]

#use for loop to iterate the array
for rows in array:
 for columns in rows:
   print(columns,end=" ")
   print()

Đầu ra:

23 45 43 23 45
45 67 54 32 45
89 90 87 65 44
23 45 67 32 10

Chèn các giá trị vào mảng hai chiều

Ở đây chúng ta sẽ chèn giá trị vào mảng hai chiều bằng hàm Insert()

Cú pháp:

array.insert(index,[values])

Ở đâu,

  • mảng là mảng đầu vào
  • chỉ mục là vị trí hàng để chèn một hàng cụ thể
  • value là các giá trị được chèn vào mảng

Ví dụ: Chèn vào các giá trị trong mảng

#Create 2D array with 4 rows and 5 columns
array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]

#insert the row at 5 th position
array.insert(2, [1,2,3,4,5])

#insert the row at 6 th position
array.insert(2, [1,2,3,4,5])

#insert the row at 7 th position
array.insert(2, [1,2,3,4,5])

#display
print(array)

Đầu ra:

[[23, 45, 43, 23, 45], [45, 67, 54, 32, 45], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [89, 90, 87, 65, 44], [23, 45, 67, 32, 10]]

Cập nhật các giá trị vào mảng hai chiều

Đây là hai phương pháp để cập nhật giá trị trong mảng (danh sách) 2-D.

Bạn có thể cập nhật các hàng bằng cách sử dụng cú pháp sau

array[row_index]= [values]

Bạn có thể cập nhật giá trị cột bên trong các hàng bằng cách sử dụng cú pháp sau

array[row_index][column_index]= [values]

Ví dụ:

#creare 2D array with 4 rows and 5 columns
array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]

#update row values in the 3rd row
array[2]=[0,3,5,6,7]

#update row values in the 5th row
array[2]=[0,3,5,6,7]

#update the first row , third column
array[0][2]=100

#update the second row , third column
array[1][2]=400

#display
print(array)

Đầu ra:

[[23, 45, 100, 23, 45], [45, 67, 400, 32, 45], [0, 3, 5, 6, 7], [23, 45, 67, 32, 10]]

Xóa các giá trị khỏi mảng hai chiều

Bạn có thể xóa các hàng bằng cách sử dụng del chức năng

Cú pháp:

del array[index]

Ở đâu,

  • mảng là mảng đầu vào
  • chỉ mục đề cập đến chỉ mục hàng

Ví dụ:

#creare 2D array with 4 rows and 5 columns
array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]

#delete row values in the 3rd row
del array[2]

#delete row values in the 2nd row
del array[1]

#display
print(array)

Đầu ra:

[[23, 45, 43, 23, 45], [23, 45, 67, 32, 10]]

Lấy kích thước của mảng hai chiều

Bạn có thể lấy kích thước của mảng hai chiều bằng hàm line(). Nó sẽ trả về số hàng trong mảng

cú pháp:

len(array)

Ví dụ:

Lấy độ dài của mảng hai chiều

#creare 2D array with 4 rows and 5 columns
array=[[23,45,43,23,45],[45,67,54,32,45],[89,90,87,65,44],[23,45,67,32,10]]
#display
print(len(array))

Đầu ra:

4

Quan trọng Python Phương thức mảng (danh sách)

Dưới đây là một số Phương thức Mảng (danh sách) quan trọng

Phương pháp Mô tả Chi tiết cú pháp Ví dụ
Nối thêm(): Phương thức này giúp chúng ta thêm một phần tử vào cuối mảng hiện có. mảng.append(giá trị)
# Adding an element using append method to the end of an array array=[1,2,3] array.append(4) print(array)

Đầu ra:

[1,2,3,4]
Thông thoáng(): Phương thức này giúp chúng ta loại bỏ tất cả các phần tử có trong mảng mảng.clear()
# Removing all the elements from an array array=[1,2,3]
array.clear()

Đầu ra:

[]
Sao chép(): Phương thức này giúp chúng ta copy nội dung của mảng sang mảng mới mảng1=mảng.copy()
#Copying the elements from an array to a new array array=[1,2,3] array1=[]
array1=array.copy()
  print(array1)

Đầu ra:

[1,2,3]
Đếm(): Phương pháp này giúp chúng ta đếm số lần xuất hiện của một phần tử được chỉ định trong một mảng mảng.count(phần tử)
#Counting the no of times an element is present in an array array=[1,2,3]
print(array.count(8))
 Output: 0
Mở rộng(): Phương pháp này giúp chúng ta mở rộng một mảng ra ngoài các phần tử bao gồm trong đó. mảng.extend(mảng1)
#Extending an existing array with another array array=[1,2,3] array1=[4,5,6] array.extend(array1) print(array)
Output: [1,2,3,4,5,6]
Mục lục(): Phương thức này giúp chúng ta tìm chỉ mục của một phần tử trong mảng mảng.index(phần tử)
#returing the index an element in an array array=[1,2,3]
print(array.index(3))

Đầu ra:

2
Chèn(): Phương thức này giúp chúng ta chèn các phần tử vào một mảng tại chỉ mục đã chỉ định. mảng.insert(chỉ mục, phần tử)
#Inserting an element at a specified index into an array array=[1,2,3]
array.insert(2,4)
  print(array)

Đầu ra:

[1,2,4,3]
Nhạc pop(): Phương thức này giúp chúng ta loại bỏ một phần tử tại chỉ mục đã chỉ định mảng.pop(chỉ mục)
#Removing an element at specified index through pop method
array=[1,2,3]
array.pop(2)
  print(array)

Đầu ra:

[1,2]
Di dời(): Phương pháp này giúp chúng ta loại bỏ một phần tử khớp cụ thể trong một mảng. mảng.remove (phần tử)
array=[1,2,3]
array.remove(2)
  print(array)

Đầu ra:

[1,3]
Reverse(): Phương pháp này giúp đảo ngược các phần tử trong một mảng. mảng.reverse()
array=[1,2,3,4]
array.reverse()
  print(array)

Đầu ra:

[4,3,2,1]

Câu Hỏi Thường Gặp

In PythonThông thường, mảng 2 chiều được triển khai dưới dạng danh sách các danh sách, vì vậy hai thuật ngữ này có nghĩa giống nhau. Để thực hiện các phép tính số học nhanh, thư viện NumPy cung cấp một kiểu mảng thực sự chuyên dụng.

Nhập NumPy, sau đó truyền một danh sách các danh sách cho numpy.array(), ví dụ: np.array([[1,2],[3,4]]). Mảng NumPy hỗ trợ các phép toán nhanh theo từng phần tử, cắt lát và tái tạo.ping Những danh sách lồng nhau đơn thuần không thể thực hiện điều đó một cách hiệu quả.

Hãy sử dụng cú pháp tạo danh sách như [[0]*cols for _ in range(rows)]. Tránh sử dụng [[0]*cols]*rows vì nó lặp lại cùng một tham chiếu danh sách bên trong, do đó việc chỉnh sửa một hàng có thể vô tình thay đổi tất cả các hàng khác.

Sử dụng len(array) cho số hàng và len(array[0]) cho số cột trong hàng đầu tiên. Với NumPy, thuộc tính shape trả về cả hai giá trị dưới dạng một bộ (hàng, cột).

Danh sách (list) lưu trữ nhiều kiểu dữ liệu khác nhau và nằm rải rác trong bộ nhớ. Mảng NumPy chứa một kiểu dữ liệu duy nhất trong bộ nhớ liền kề, sử dụng ít không gian hơn và thực hiện các phép toán số học nhanh hơn nhiều vì chúng được thực thi bằng ngôn ngữ C.

Sử dụng vòng lặp for lồng nhau: vòng lặp ngoài lặp qua từng hàng, và vòng lặp trong lặp qua các cột bên trong hàng đó. Điều này cho phép bạn đọc hoặc cập nhật từng phần tử theo từng vị trí.

Các trợ lý AI có thể tạo mã mảng 2D, giải thích lỗi chỉ mục, viết vòng lặp lồng nhau và chuyển đổi giữa danh sách các danh sách và mảng NumPy, giúp tăng tốc quá trình học tập và các tác vụ dữ liệu hàng ngày.

Đúng vậy. GitHub Copilot tự động hoàn thành việc tạo, lập chỉ mục và duyệt mảng 2D từ một bình luận, và các công cụ tác nhân có thể tự động tái cấu trúc các vòng lặp lồng nhau hoặc phát hiện các lỗi sai lệch một đơn vị trong toàn bộ tệp.

Tóm tắt bài viết này với: