array — pole numerických dat

Tento modul definuje typ array.array: prostorově úspornou sekvenci hodnot jediného pevně daného numerického typu, indexovatelnou jako seznam, ale podloženou souvislým blokem paměti dostupným přes protokol bufferu.

Podporované kódy typů

Jednoznakový argument typecode vybírá typ prvku:

Kód typu

Typ C

Bajty

Typ 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 nebo 4

int

'I'

unsigned int

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

Kódy 'f' a 'd' vyžadují firmware sestavený s podporou pohyblivé řádové čárky (výchozí na většině desek). Přesná šířka 'i' a 'I' se řídí hostitelským C ABI — typicky 4 bajty na portech Cortex-M.

Třídy

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

Vytvoří pole s prvky daného typu. Počáteční obsah pole je dán iterable. Pokud není poskytnut, vytvoří se prázdné pole.

Kromě níže uvedených metod implementují objekty pole také protokol bufferu. To znamená, že k obsahu celého pole lze přistupovat jako k surovým bajtům přes memoryview nebo jiná rozhraní, která tento protokol používají.

append(val: Any) None

Připojí nový prvek val na konec pole a zvětší jej.

extend(iterable: Iterable) None

Připojí nové prvky obsažené v iterable na konec pole a zvětší jej.

__getitem__(index: int | slice) Any

Indexované čtení pole, voláno jako a[index] (kde a je array). Vrací hodnotu, pokud je index typu int, a array, pokud je index řez. Záporné indexy se počítají od konce a pokud je index mimo rozsah, vyvolá se IndexError.

Poznámka: __getitem__ nelze volat přímo (a.__getitem__(index) selže) a není přítomno v __dict__, avšak a[index] funguje.

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

Indexovaný zápis do pole, voláno jako a[index] = value (kde a je array). value je jediná hodnota, pokud je index typu int, a array, pokud je index řez. Záporné indexy se počítají od konce a pokud je index mimo rozsah, vyvolá se IndexError.

Poznámka: __setitem__ nelze volat přímo (a.__setitem__(index, value) selže) a není přítomno v __dict__, avšak a[index] = value funguje.

__len__() int

Vrací počet položek v poli, voláno jako len(a) (kde a je array).

Poznámka: __len__ nelze volat přímo (a.__len__() selže) a metoda není přítomna v __dict__, avšak len(a) funguje.

__add__(other: array) array

Vrátí nové array, které je zřetězením pole s other, voláno jako a + other (kde a i other jsou obě arrays).

Poznámka: __add__ nelze volat přímo (a.__add__(other) selže) a není přítomno v __dict__, avšak a + other funguje.

__iadd__(other: array) array

Zřetězí pole s other na místě, voláno jako a += other (kde a i other jsou obě arrays). Ekvivalentní k extend(other).

Poznámka: __iadd__ nelze volat přímo (a.__iadd__(other) selže) a není přítomno v __dict__, avšak a += other funguje.

__repr__() str

Vrací řetězcovou reprezentaci pole, voláno jako str(a) nebo repr(a) (kde a je array). Vrací řetězec "array(<type>, [<elements>])", kde <type> je písmeno kódu typu pole a <elements> je čárkami oddělený seznam prvků pole.

Poznámka: __repr__ nelze volat přímo (a.__repr__() selže) a není přítomno v __dict__, avšak str(a) i repr(a) fungují.