array --- arrays of numeric data

Module này định nghĩa kiểu array.array: một chuỗi giá trị tiết kiệm không gian của một kiểu số cố định duy nhất, có thể truy cập theo chỉ mục như danh sách nhưng được hỗ trợ bởi một khối bộ nhớ liên tiếp có thể truy cập qua buffer protocol.

Các mã kiểu được hỗ trợ

Đối số typecode một ký tự chọn kiểu phần tử:

Mã kiểu

Kiểu C

Bytes

Kiểu Python

'b'

signed char

1

int

'B'

unsigned char

1

int

'h'

signed short

2

int

'H'

unsigned short

2

int

'i'

signed int

2 or 4

int

'I'

unsigned int

2 or 4

int

'l'

signed long

4

int

'L'

unsigned long

4

int

'q'

signed long long

8

int

'Q'

unsigned long long

8

int

'f'

float

4

float

'd'

double

8

float

Các mã 'f''d' yêu cầu firmware được biên dịch với hỗ trợ dấu phẩy động (mặc định trên hầu hết các board). Độ rộng chính xác của 'i''I' theo host C ABI --- thường là 4 byte trên các cổng Cortex-M.

Các lớp

class array.array(typecode: str, iterable: Iterable = ())

Tạo mảng với các phần tử của kiểu đã cho. Nội dung ban đầu của mảng được cung cấp bởi iterable. Nếu không được cung cấp, một mảng rỗng sẽ được tạo.

Ngoài các phương thức dưới đây, các đối tượng array cũng triển khai buffer protocol. Điều này có nghĩa là toàn bộ nội dung mảng có thể được truy cập dưới dạng bytes thô qua memoryview hoặc các giao diện khác sử dụng protocol này.

append(val: Any) None

Thêm phần tử mới val vào cuối mảng, làm tăng kích thước của nó.

extend(iterable: Iterable) None

Thêm các phần tử mới chứa trong iterable vào cuối mảng, làm tăng kích thước của nó.

__getitem__(index: int | slice) Any

Đọc theo chỉ mục của mảng, được gọi là a[index] (trong đó a là một array). Trả về một giá trị nếu indexint và một array nếu index là slice. Các chỉ mục âm đếm từ cuối và IndexError được ném nếu chỉ mục nằm ngoài phạm vi.

Lưu ý: __getitem__ không thể được gọi trực tiếp (a.__getitem__(index) thất bại) và không có trong __dict__, tuy nhiên a[index] vẫn hoạt động.

__setitem__(index: int | slice, value: Any) None

Ghi theo chỉ mục vào mảng, được gọi là a[index] = value (trong đó a là một array). value là một giá trị đơn nếu indexint và một array nếu index là slice. Các chỉ mục âm đếm từ cuối và IndexError được ném nếu chỉ mục nằm ngoài phạm vi.

Lưu ý: __setitem__ không thể được gọi trực tiếp (a.__setitem__(index, value) thất bại) và không có trong __dict__, tuy nhiên a[index] = value vẫn hoạt động.

__len__() int

Trả về số phần tử trong mảng, được gọi là len(a) (trong đó a là một array).

Lưu ý: __len__ không thể được gọi trực tiếp (a.__len__() thất bại) và phương thức không có trong __dict__, tuy nhiên len(a) vẫn hoạt động.

__add__(other: array) array

Trả về một array mới là sự nối của mảng với other, được gọi là a + other (trong đó aother đều là arrays).

Lưu ý: __add__ không thể được gọi trực tiếp (a.__add__(other) thất bại) và không có trong __dict__, tuy nhiên a + other vẫn hoạt động.

__iadd__(other: array) array

Nối mảng với other tại chỗ, được gọi là a += other (trong đó aother đều là arrays). Tương đương với extend(other).

Lưu ý: __iadd__ không thể được gọi trực tiếp (a.__iadd__(other) thất bại) và không có trong __dict__, tuy nhiên a += other vẫn hoạt động.

__repr__() str

Trả về biểu diễn chuỗi của mảng, được gọi là str(a) hoặc repr(a) (trong đó a là một array). Trả về chuỗi "array(<type>, [<elements>])", trong đó <type> là chữ cái mã kiểu cho mảng và <elements> là danh sách phân cách bằng dấu phẩy của các phần tử mảng.

Lưu ý: __repr__ không thể được gọi trực tiếp (a.__repr__() thất bại) và không có trong __dict__, tuy nhiên cả str(a)repr(a) đều hoạt động.