Khác với các ngôn ngữ lập trình khác như C++ hoặc Java, Python không có hỗ trợ tích hợp cho mảng. Tuy nhiên, Python có một số kiểu dữ liệu như danh sách (lists) và bộ (tuples) (đặc biệt là danh sách) thường được sử dụng như mảng, nhưng các mục được lưu trữ trong những kiểu chuỗi này không cần phải cùng loại.
Ngoài ra, chúng ta có thể tạo và thao tác với mảng bằng cách sử dụng mô-đun array . Trước khi tiến xa hơn, hãy cùng hiểu về mảng nói chung.
Một array là một container có thể chứa một số lượng cố định các mục và các mục này phải cùng loại. Mỗi mục được lưu trữ trong một mảng được gọi là element và chúng có thể thuộc bất kỳ loại nào, bao gồm số nguyên, số thực, chuỗi, v.v.
Các phần tử này được lưu trữ tại các vị trí bộ nhớ liên tiếp. Mỗi vị trí của một phần tử trong một mảng có một chỉ số số học index bắt đầu từ 0. Các chỉ số này được sử dụng để xác định và truy cập các phần tử.
Mảng được biểu diễn dưới dạng một tập hợp nhiều container, trong đó mỗi container lưu trữ một phần tử. Các container này được đánh chỉ số từ '0' đến 'n-1', trong đó n là kích thước của mảng cụ thể đó.
Mảng có thể được khai báo theo nhiều cách khác nhau trong các ngôn ngữ khác nhau. Dưới đây là một minh họa −
Theo như minh họa ở trên, dưới đây là những điểm quan trọng cần được xem xét −
Chỉ số bắt đầu từ 0.
Độ dài của mảng là 10, có nghĩa là nó có thể lưu trữ 10 phần tử.
Mỗi phần tử có thể được truy cập thông qua chỉ số của nó. Ví dụ, chúng ta có thể lấy một phần tử tại chỉ số 6 là 9.
Để tạo một mảng trong Python, hãy nhập mô-đun array và sử dụng hàm array() . Chúng ta có thể tạo một mảng với ba kiểu cơ bản là số nguyên, số thực và ký tự Unicode bằng cách sử dụng hàm này.
Hàm array() chấp nhận typecode và initializer dưới dạng giá trị tham số và trả về một đối tượng của lớp array.
Cú pháp để tạo một mảng trong Python là −
# importing import array as array_name # creating array obj = array_name.array(typecode[, initializer])
Nơi nào,
typecode − Ký tự typecode được sử dụng để chỉ định loại phần tử trong mảng.
initializer − Đây là một giá trị tùy chọn mà từ đó mảng được khởi tạo. Nó phải là một danh sách, một đối tượng giống bytes, hoặc các phần tử có thể lặp lại của loại phù hợp.
Ví dụ sau đây cho thấy cách tạo một mảng trong Python bằng cách sử dụng mô-đun array.
import array as arr # creating an array with integer type a = arr.array('i', [1, 2, 3]) print (type(a), a) # creating an array with char type a = arr.array('u', 'BAT') print (type(a), a) # creating an array with float type a = arr.array('d', [1.1, 2.2, 3.3]) print (type(a), a)
Nó sẽ tạo ra output −
<class 'array.array'> array('i', [1, 2, 3]) <class 'array.array'> array('u', 'BAT') <class 'array.array'> array('d', [1.1, 2.2, 3.3])
Loại mảng trong Python được xác định bởi một tham số Typecode có ký tự đơn. Các mã loại và loại dữ liệu dự kiến của mảng được liệt kê dưới đây −
typecode | Python data type | Byte size |
---|---|---|
'b' | signed integer | 1 |
'B' | unsigned integer | 1 |
'u' | Unicode character | 2 |
'h' | signed integer | 2 |
'H' | unsigned integer | 2 |
'i' | signed integer | 2 |
'I' | unsigned integer | 2 |
'l' | signed integer | 4 |
'L' | unsigned integer | 4 |
'q' | signed integer | 8 |
'Q' | unsigned integer | 8 |
'f' | floating point | 4 |
'd' | floating point | 8 |
Dưới đây là các thao tác cơ bản được hỗ trợ bởi một mảng −
Traverse − In tất cả các phần tử của mảng một cách lần lượt.
Insertion − Thêm một phần tử tại chỉ số đã cho.
Deletion − Xóa một phần tử tại chỉ số đã cho.
Search − Tìm kiếm một phần tử bằng cách sử dụng chỉ số đã cho hoặc theo giá trị.
Update − Cập nhật một phần tử tại chỉ số đã cho.
Chúng ta có thể truy cập từng phần tử của một mảng bằng cách sử dụng chỉ số của phần tử đó.
Đoạn mã dưới đây cho thấy cách truy cập các phần tử của một mảng.
from array import * array1 = array('i', [10,20,30,40,50]) print (array1[0]) print (array1[2])
Khi chúng ta biên dịch và thực thi chương trình trên, nó sẽ tạo ra kết quả sau −
10 30
Trong phép toán chèn, chúng ta chèn một hoặc nhiều phần tử dữ liệu vào một mảng. Dựa trên yêu cầu, một phần tử mới có thể được thêm vào ở đầu, cuối hoặc bất kỳ chỉ số nào trong mảng.
Ở đây, chúng ta thêm một phần tử dữ liệu vào giữa mảng bằng cách sử dụng phương thức insert() có sẵn trong Python.
from array import * array1 = array('i', [10,20,30,40,50]) array1.insert(1,60) for x in array1: print(x)
Khi chúng ta biên dịch và thực thi chương trình trên, nó sẽ cho ra kết quả sau, cho thấy phần tử đã được chèn vào vị trí chỉ số 1.
10 60 20 30 40 50
Xóa (Deletion) đề cập đến việc loại bỏ một phần tử hiện có khỏi mảng và tổ chức lại tất cả các phần tử của mảng.
Ở đây, chúng ta loại bỏ một phần tử dữ liệu ở giữa mảng bằng cách sử dụng phương thức remove() tích hợp sẵn trong Python.
from array import * array1 = array('i', [10,20,30,40,50]) array1.remove(40) for x in array1: print(x)
Khi chúng ta biên dịch và thực thi chương trình trên, nó sẽ tạo ra kết quả sau cho thấy phần tử đã được loại bỏ khỏi mảng.
10 20 30 50
Bạn có thể thực hiện một thao tác tìm kiếm trên một mảng để tìm một phần tử của mảng dựa trên giá trị hoặc chỉ số của nó.
Ở đây, chúng ta tìm kiếm một phần tử dữ liệu bằng cách sử dụng phương thức index() tích hợp sẵn trong Python −
from array import * array1 = array('i', [10,20,30,40,50]) print (array1.index(40))
Khi chúng ta biên dịch và thực thi chương trình trên, nó sẽ hiển thị chỉ số của phần tử được tìm kiếm. Nếu giá trị không có trong mảng, nó sẽ trả về một lỗi.
3
Cập nhật hoạt động đề cập đến việc cập nhật một phần tử hiện có từ mảng tại một chỉ số nhất định. Ở đây, chúng ta chỉ cần gán một giá trị mới cho chỉ số mà chúng ta muốn cập nhật.
Trong ví dụ này, chúng ta đang cập nhật giá trị của phần tử mảng tại chỉ số 2.
from array import * array1 = array('i', [10,20,30,40,50]) array1[2] = 80 for x in array1: print(x)
Khi thực thi chương trình trên, nó sẽ tạo ra kết quả sau đây cho thấy giá trị mới tại vị trí chỉ mục 2.
10 20 80 40 50