array — arrays de dados numéricos

Este módulo define o tipo array.array: uma sequência eficiente em espaço de valores de um único tipo numérico fixo, indexável como uma lista mas suportada por um bloco contíguo de memória acessível via o protocolo de buffer.

Códigos de tipo suportados

O argumento typecode de um único carácter seleciona o 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 ou 4

int

'I'

unsigned int

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

Os códigos 'f' e 'd' requerem firmware compilado com suporte a vírgula flutuante (o padrão na maioria das placas). A largura exata de 'i' e 'I' segue o ABI C do hospedeiro — tipicamente 4 bytes nos portos Cortex-M.

Classes

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

Cria um array com elementos do tipo indicado. O conteúdo inicial do array é dado por iterable. Se não for fornecido, é criado um array vazio.

Para além dos métodos abaixo, os objetos array também implementam o protocolo de buffer. Isto significa que o conteúdo do array completo pode ser acedido como bytes em bruto via memoryview ou outras interfaces que usam este protocolo.

append(val: Any) None

Acrescenta o novo elemento val ao final do array, aumentando-o.

extend(iterable: Iterable) None

Acrescenta os novos elementos contidos em iterable ao final do array, aumentando-o.

__getitem__(index: int | slice) Any

Leitura indexada do array, chamada como a[index] (onde a é um array). Devolve um valor se index for um int e um array se index for uma fatia. Índices negativos contam a partir do fim e IndexError é lançado se o índice estiver fora do intervalo.

Nota: __getitem__ não pode ser chamado diretamente (a.__getitem__(index) falha) e não está presente em __dict__, no entanto a[index] funciona.

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

Escrita indexada no array, chamada como a[index] = value (onde a é um array). value é um único valor se index for um int e um array se index for uma fatia. Índices negativos contam a partir do fim e IndexError é lançado se o índice estiver fora do intervalo.

Nota: __setitem__ não pode ser chamado diretamente (a.__setitem__(index, value) falha) e não está presente em __dict__, no entanto a[index] = value funciona.

__len__() int

Devolve o número de elementos no array, chamado como len(a) (onde a é um array).

Nota: __len__ não pode ser chamado diretamente (a.__len__() falha) e o método não está presente em __dict__, no entanto len(a) funciona.

__add__(other: array) array

Devolve um novo array que é a concatenação do array com other, chamado como a + other (onde a e other são ambos arrays).

Nota: __add__ não pode ser chamado diretamente (a.__add__(other) falha) e não está presente em __dict__, no entanto a + other funciona.

__iadd__(other: array) array

Concatena o array com other no local, chamado como a += other (onde a e other são ambos arrays). Equivalente a extend(other).

Nota: __iadd__ não pode ser chamado diretamente (a.__iadd__(other) falha) e não está presente em __dict__, no entanto a += other funciona.

__repr__() str

Devolve a representação textual do array, chamada como str(a) ou repr(a) (onde a é um array). Devolve a cadeia "array(<type>, [<elements>])", onde <type> é a letra do código de tipo do array e <elements> é uma lista separada por vírgulas dos elementos do array.

Nota: __repr__ não pode ser chamado diretamente (a.__repr__() falha) e não está presente em __dict__, no entanto str(a) e repr(a) ambos funcionam.