array — nizovi numeričkih podataka

Ovaj modul definira tip array.array: prostorno učinkovit slijed vrijednosti jednog fiksnog numeričkog tipa, indeksiran poput liste, ali poduprt kontinuiranim blokom memorije dostupnim putem protokola međuspremnika (buffer protocol).

Podržani kodovi tipova

Argument typecode od jednog znaka odabire tip elementa:

Kod tipa

C tip

Bajtovi

Python tip

'b'

signed char

1

int

'B'

unsigned char

1

int

'h'

signed short

2

int

'H'

unsigned short

2

int

'i'

signed int

2 ili 4

int

'I'

unsigned int

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

Kodovi 'f' i 'd' zahtijevaju ugrađeni program (firmware) izgrađen s podrškom za pomični zarez (zadano na većini ploča). Točna širina kodova 'i' i 'I' slijedi C ABI domaćina — tipično 4 bajta na Cortex-M portovima.

Klase

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

Stvara niz s elementima zadanog tipa. Početni sadržaj niza zadan je s iterable. Ako nije naveden, stvara se prazan niz.

Uz metode navedene u nastavku, objekti niza također implementiraju protokol međuspremnika. To znači da se sadržaju cijelog niza može pristupiti kao sirovim bajtovima putem memoryview ili drugih sučelja koja koriste ovaj protokol.

append(val: Any) None

Dodaje novi element val na kraj niza, povećavajući ga.

extend(iterable: Iterable) None

Dodaje nove elemente sadržane u iterable na kraj niza, povećavajući ga.

__getitem__(index: int | slice) Any

Indeksirano čitanje niza, pozvano kao a[index] (gdje je a array). Vraća vrijednost ako je index tipa int, a array ako je index isječak (slice). Negativni indeksi broje se od kraja, a IndexError se podiže ako je indeks izvan raspona.

Napomena: __getitem__ se ne može pozvati izravno (a.__getitem__(index) ne uspijeva) i nije prisutan u __dict__, no a[index] ipak radi.

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

Indeksirano pisanje u niz, pozvano kao a[index] = value (gdje je a array). value je jedna vrijednost ako je index tipa int, a array ako je index isječak (slice). Negativni indeksi broje se od kraja, a IndexError se podiže ako je indeks izvan raspona.

Napomena: __setitem__ se ne može pozvati izravno (a.__setitem__(index, value) ne uspijeva) i nije prisutan u __dict__, no a[index] = value ipak radi.

__len__() int

Vraća broj stavki u nizu, pozvano kao len(a) (gdje je a array).

Napomena: __len__ se ne može pozvati izravno (a.__len__() ne uspijeva) i metoda nije prisutna u __dict__, no len(a) ipak radi.

__add__(other: array) array

Vraća novi array koji je spajanje niza s other, pozvano kao a + other (gdje su a i other oba arrays).

Napomena: __add__ se ne može pozvati izravno (a.__add__(other) ne uspijeva) i nije prisutan u __dict__, no a + other ipak radi.

__iadd__(other: array) array

Spaja niz s other na mjestu, pozvano kao a += other (gdje su a i other oba arrays). Ekvivalentno extend(other).

Napomena: __iadd__ se ne može pozvati izravno (a.__iadd__(other) ne uspijeva) i nije prisutan u __dict__, no a += other ipak radi.

__repr__() str

Vraća string reprezentaciju niza, pozvano kao str(a) ili repr(a) (gdje je a array). Vraća string "array(<type>, [<elements>])", gdje je <type> slovo koda tipa za niz, a <elements> je popis elemenata niza odvojen zarezima.

Napomena: __repr__ se ne može pozvati izravno (a.__repr__() ne uspijeva) i nije prisutan u __dict__, no str(a) i repr(a) oba rade.