array — tablouri de date numerice

Acest modul definește tipul array.array: o secvență eficientă din punct de vedere al spațiului de valori de un singur tip numeric fix, indexabilă ca o listă, dar susținută de un bloc contiguu de memorie accesibil prin protocolul buffer.

Coduri de tip acceptate

Argumentul typecode de un singur caracter selectează tipul elementului:

Cod de tip

Tip C

Octeți

Tip 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 sau 4

int

'I'

unsigned int

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

Codurile 'f' și 'd' necesită firmware construit cu suport pentru virgulă mobilă (implicit pe majoritatea plăcilor). Lățimea exactă a lui 'i' și 'I' urmează ABI-ul C al gazdei — de obicei 4 octeți pe porturile Cortex-M.

Clase

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

Creează un tablou cu elemente de tipul dat. Conținutul inițial al tabloului este dat de iterable. Dacă nu este furnizat, se creează un tablou gol.

Pe lângă metodele de mai jos, obiectele array implementează de asemenea protocolul buffer. Aceasta înseamnă că întregul conținut al tabloului poate fi accesat ca octeți bruți printr-un memoryview sau alte interfețe care folosesc acest protocol.

append(val: Any) None

Adaugă noul element val la sfârșitul tabloului, mărindu-l.

extend(iterable: Iterable) None

Adaugă noile elemente conținute în iterable la sfârșitul tabloului, mărindu-l.

__getitem__(index: int | slice) Any

Citire indexată a tabloului, apelată ca a[index] (unde a este un array). Returnează o valoare dacă index este un int și un array dacă index este un slice. Indicii negativi se numără de la sfârșit și IndexError este ridicat dacă indexul este în afara intervalului.

Notă: __getitem__ nu poate fi apelat direct (a.__getitem__(index) eșuează) și nu este prezent în __dict__, însă a[index] funcționează.

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

Scriere indexată în tablou, apelată ca a[index] = value (unde a este un array). value este o singură valoare dacă index este un int și un array dacă index este un slice. Indicii negativi se numără de la sfârșit și IndexError este ridicat dacă indexul este în afara intervalului.

Notă: __setitem__ nu poate fi apelat direct (a.__setitem__(index, value) eșuează) și nu este prezent în __dict__, însă a[index] = value funcționează.

__len__() int

Returnează numărul de elemente din tablou, apelat ca len(a) (unde a este un array).

Notă: __len__ nu poate fi apelat direct (a.__len__() eșuează) și metoda nu este prezentă în __dict__, însă len(a) funcționează.

__add__(other: array) array

Returnează un nou array care este concatenarea tabloului cu other, apelat ca a + other (unde a și other sunt ambele arrays).

Notă: __add__ nu poate fi apelat direct (a.__add__(other) eșuează) și nu este prezent în __dict__, însă a + other funcționează.

__iadd__(other: array) array

Concatenează tabloul cu other pe loc, apelat ca a += other (unde a și other sunt ambele arrays). Echivalent cu extend(other).

Notă: __iadd__ nu poate fi apelat direct (a.__iadd__(other) eșuează) și nu este prezent în __dict__, însă a += other funcționează.

__repr__() str

Returnează reprezentarea ca șir de caractere a tabloului, apelată ca str(a) sau repr(a) (unde a este un array). Returnează șirul "array(<type>, [<elements>])", unde <type> este litera codului de tip al tabloului și <elements> este o listă separată prin virgule a elementelor tabloului.

Notă: __repr__ nu poate fi apelat direct (a.__repr__() eșuează) și nu este prezent în __dict__, însă str(a) și repr(a) funcționează ambele.