array — arreglos de datos numéricos

Este módulo define el tipo array.array: una secuencia eficiente en espacio de valores de un único tipo numérico fijo, indexable como una lista pero respaldada por un bloque contiguo de memoria accesible a través del protocolo de búfer.

Códigos de tipo admitidos

El argumento typecode de un solo carácter selecciona el tipo de elemento:

Código de tipo

Tipo C

Bytes

Tipo 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 o 4

int

'I'

unsigned int

2 o 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

Los códigos 'f' y 'd' requieren firmware compilado con soporte de punto flotante (el valor predeterminado en la mayoría de las placas). El ancho exacto de 'i' e 'I' sigue la ABI de C del host — típicamente 4 bytes en los puertos Cortex-M.

Clases

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

Crea un arreglo con elementos del tipo dado. El contenido inicial del arreglo lo proporciona iterable. Si no se proporciona, se crea un arreglo vacío.

Además de los métodos siguientes, los objetos array también implementan el protocolo de búfer. Esto significa que el contenido de todo el arreglo puede accederse como bytes en bruto a través de un memoryview u otras interfaces que usen este protocolo.

append(val: Any) None

Añade el nuevo elemento val al final del arreglo, haciéndolo crecer.

extend(iterable: Iterable) None

Añade los nuevos elementos contenidos en iterable al final del arreglo, haciéndolo crecer.

__getitem__(index: int | slice) Any

Lectura indexada del arreglo, llamada como a[index] (donde a es un array). Devuelve un valor si index es un int y un array si index es un slice. Los índices negativos cuentan desde el final y se lanza IndexError si el índice está fuera de rango.

Nota: __getitem__ no puede llamarse directamente (a.__getitem__(index) falla) y no está presente en __dict__, sin embargo a[index] sí funciona.

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

Escritura indexada en el arreglo, llamada como a[index] = value (donde a es un array). value es un único valor si index es un int y un array si index es un slice. Los índices negativos cuentan desde el final y se lanza IndexError si el índice está fuera de rango.

Nota: __setitem__ no puede llamarse directamente (a.__setitem__(index, value) falla) y no está presente en __dict__, sin embargo a[index] = value sí funciona.

__len__() int

Devuelve el número de elementos en el arreglo, llamada como len(a) (donde a es un array).

Nota: __len__ no puede llamarse directamente (a.__len__() falla) y el método no está presente en __dict__, sin embargo len(a) sí funciona.

__add__(other: array) array

Devuelve un nuevo array que es la concatenación del arreglo con other, llamada como a + other (donde a y other son ambos arrays).

Nota: __add__ no puede llamarse directamente (a.__add__(other) falla) y no está presente en __dict__, sin embargo a + other sí funciona.

__iadd__(other: array) array

Concatena el arreglo con other in situ, llamada como a += other (donde a y other son ambos arrays). Equivalente a extend(other).

Nota: __iadd__ no puede llamarse directamente (a.__iadd__(other) falla) y no está presente en __dict__, sin embargo a += other sí funciona.

__repr__() str

Devuelve la representación en cadena del arreglo, llamada como str(a) o repr(a) (donde a es un array). Devuelve la cadena "array(<type>, [<elements>])", donde <type> es la letra del código de tipo del arreglo y <elements> es una lista separada por comas de los elementos del arreglo.

Nota: __repr__ no puede llamarse directamente (a.__repr__() falla) y no está presente en __dict__, sin embargo str(a) y repr(a) ambos funcionan.