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 или 4

int

'I'

unsigned int

2 или 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' следует C ABI хоста — обычно 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) оба работают.