array — array di dati numerici

Questo modulo definisce il tipo array.array: una sequenza efficiente in termini di spazio di valori di un singolo tipo numerico fisso, indicizzabile come una lista ma supportata da un blocco di memoria contiguo accessibile tramite il protocollo buffer.

Codici di tipo supportati

L’argomento typecode di un singolo carattere seleziona il tipo di elemento:

Codice di tipo

Tipo C

Byte

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

I codici 'f' e 'd' richiedono un firmware compilato con il supporto in virgola mobile (impostazione predefinita sulla maggior parte delle schede). L’ampiezza esatta di 'i' e 'I' segue la C ABI dell’host — tipicamente 4 byte sui port Cortex-M.

Classi

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

Crea un array con elementi del tipo specificato. Il contenuto iniziale dell’array è fornito da iterable. Se non viene fornito, viene creato un array vuoto.

Oltre ai metodi seguenti, gli oggetti array implementano anche il protocollo buffer. Ciò significa che il contenuto dell’intero array può essere acceduto come byte grezzi tramite un memoryview o altre interfacce che usano questo protocollo.

append(val: Any) None

Aggiunge il nuovo elemento val alla fine dell’array, facendolo crescere.

extend(iterable: Iterable) None

Aggiunge i nuovi elementi contenuti in iterable alla fine dell’array, facendolo crescere.

__getitem__(index: int | slice) Any

Lettura indicizzata dell’array, chiamata come a[index] (dove a è un array). Restituisce un valore se index è un int e un array se index è uno slice. Gli indici negativi contano dalla fine e viene sollevato IndexError se l’indice è fuori intervallo.

Nota: __getitem__ non può essere chiamato direttamente (a.__getitem__(index) fallisce) e non è presente in __dict__, tuttavia a[index] funziona.

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

Scrittura indicizzata nell’array, chiamata come a[index] = value (dove a è un array). value è un singolo valore se index è un int e un array se index è uno slice. Gli indici negativi contano dalla fine e viene sollevato IndexError se l’indice è fuori intervallo.

Nota: __setitem__ non può essere chiamato direttamente (a.__setitem__(index, value) fallisce) e non è presente in __dict__, tuttavia a[index] = value funziona.

__len__() int

Restituisce il numero di elementi nell’array, chiamato come len(a) (dove a è un array).

Nota: __len__ non può essere chiamato direttamente (a.__len__() fallisce) e il metodo non è presente in __dict__, tuttavia len(a) funziona.

__add__(other: array) array

Restituisce un nuovo array che è la concatenazione dell’array con other, chiamata come a + other (dove a e other sono entrambi arrays).

Nota: __add__ non può essere chiamato direttamente (a.__add__(other) fallisce) e non è presente in __dict__, tuttavia a + other funziona.

__iadd__(other: array) array

Concatena l’array con other sul posto, chiamata come a += other (dove a e other sono entrambi arrays). Equivalente a extend(other).

Nota: __iadd__ non può essere chiamato direttamente (a.__iadd__(other) fallisce) e non è presente in __dict__, tuttavia a += other funziona.

__repr__() str

Restituisce la rappresentazione in stringa dell’array, chiamata come str(a) o repr(a) (dove a è un array). Restituisce la stringa "array(<type>, [<elements>])", dove <type> è la lettera del codice di tipo dell’array e <elements> è un elenco separato da virgole degli elementi dell’array.

Nota: __repr__ non può essere chiamato direttamente (a.__repr__() fallisce) e non è presente in __dict__, tuttavia str(a) e repr(a) funzionano entrambi.