array — масиви числових даних

Цей модуль визначає тип array.array: компактну послідовність значень одного фіксованого числового типу, індексовану як список, але підкріплену суцільним блоком пам’яті, доступним через буферний протокол.

Підтримувані коди типів

Односимвольний аргумент typecode вибирає тип елемента:

Код типу

Тип C

Байти

Тип 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

Коди 'f' та 'd' вимагають мікропрограми, зібраної з підтримкою плаваючої коми (за замовчуванням на більшості плат). Точна ширина 'i' та 'I' відповідає ABI C хосту — зазвичай 4 байти на портах Cortex-M.

Класи

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

Створює масив з елементами заданого типу. Початковий вміст масиву задається через iterable. Якщо він не наданий, створюється порожній масив.

Окрім наведених нижче методів, об’єкти масиву також реалізують буферний протокол. Це означає, що вміст усього масиву можна отримати як необроблені байти через memoryview або інші інтерфейси, що використовують цей протокол.

append(val: Any) None

Додає новий елемент val у кінець масиву, збільшуючи його.

extend(iterable: Iterable) None

Додає нові елементи з iterable у кінець масиву, збільшуючи його.

__getitem__(index: int | slice) Any

Індексоване читання масиву, що викликається як a[index] (де a — це array). Повертає значення, якщо index — це int, та array, якщо index — це зріз. Від’ємні індекси відраховуються з кінця, а IndexError генерується, якщо індекс виходить за межі.

Примітка: __getitem__ не можна викликати безпосередньо (a.__getitem__(index) завершується помилкою) і він відсутній у __dict__, однак a[index] працює.

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

Індексований запис у масив, що викликається як a[index] = value (де a — це array). value — це одне значення, якщо index — це int, і array, якщо index — це зріз. Від’ємні індекси відраховуються з кінця, а IndexError генерується, якщо індекс виходить за межі.

Примітка: __setitem__ не можна викликати безпосередньо (a.__setitem__(index, value) завершується помилкою) і він відсутній у __dict__, однак a[index] = value працює.

__len__() int

Повертає кількість елементів у масиві, що викликається як len(a) (де a — це array).

Примітка: __len__ не можна викликати безпосередньо (a.__len__() завершується помилкою) і метод відсутній у __dict__, однак len(a) працює.

__add__(other: array) array

Повертає новий array, що є конкатенацією масиву з other, що викликається як a + other (де a та other — обидва arrays).

Примітка: __add__ не можна викликати безпосередньо (a.__add__(other) завершується помилкою) і він відсутній у __dict__, однак a + other працює.

__iadd__(other: array) array

Конкатенує масив з other на місці, що викликається як a += other (де a та other — обидва arrays). Еквівалентно extend(other).

Примітка: __iadd__ не можна викликати безпосередньо (a.__iadd__(other) завершується помилкою) і він відсутній у __dict__, однак a += other працює.

__repr__() str

Повертає рядкове представлення масиву, що викликається як str(a) або repr(a) (де a — це array). Повертає рядок "array(<type>, [<elements>])", де <type> — літера коду типу масиву, а <elements> — список елементів масиву, розділених комами.

Примітка: __repr__ не можна викликати безпосередньо (a.__repr__() завершується помилкою) і він відсутній у __dict__, однак str(a) та repr(a) обидва працюють.