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.