array — массивы числовых данных¶
Этот модуль определяет тип array.array: эффективную по памяти последовательность значений единого фиксированного числового типа, индексируемую как список, но опирающуюся на непрерывный блок памяти, доступный через протокол буфера.
Поддерживаемые коды типов¶
Односимвольный аргумент typecode выбирает тип элемента:
Код типа |
C-тип |
Байты |
Тип Python |
|---|---|---|---|
|
|
1 |
|
|
|
1 |
|
|
|
2 |
|
|
|
2 |
|
|
|
2 или 4 |
|
|
|
2 или 4 |
|
|
|
4 |
|
|
|
4 |
|
|
|
8 |
|
|
|
8 |
|
|
|
4 |
|
|
|
8 |
|
Коды 'f' и 'd' требуют прошивки, собранной с поддержкой чисел с плавающей запятой (что используется по умолчанию на большинстве плат). Точная ширина 'i' и 'I' следует C ABI хоста — обычно 4 байта на портах Cortex-M.
Классы¶
- class array.array(typecode: str, iterable: Iterable = ())¶
Создаёт массив с элементами заданного типа. Начальное содержимое массива задаётся параметром iterable. Если он не предоставлен, создаётся пустой массив.
Помимо приведённых ниже методов, объекты массива также реализуют протокол буфера. Это означает, что содержимое всего массива можно получить как сырые байты через
memoryviewили другие интерфейсы, использующие этот протокол.- 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)оба работают.