array — tablice danych numerycznych

Ten moduł definiuje typ array.array: oszczędną pamięciowo sekwencję wartości jednego, ustalonego typu numerycznego, indeksowalną jak lista, lecz opartą na ciągłym bloku pamięci dostępnym poprzez protokół bufora.

Obsługiwane kody typów

Jednoznakowy argument typecode wybiera typ elementu:

Kod 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 lub 4

int

'I'

unsigned int

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

Kody 'f' i 'd' wymagają oprogramowania układowego zbudowanego z obsługą liczb zmiennoprzecinkowych (domyślnie na większości płytek). Dokładna szerokość 'i' i 'I' jest zgodna z hostowym ABI języka C — zwykle 4 bajty na portach Cortex-M.

Klasy

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

Tworzy tablicę z elementami danego typu. Początkowa zawartość tablicy jest podana przez iterable. Jeśli nie zostanie podana, tworzona jest pusta tablica.

Oprócz metod opisanych poniżej obiekty tablicy implementują również protokół bufora. Oznacza to, że zawartość całej tablicy można odczytać jako surowe bajty poprzez memoryview lub inne interfejsy korzystające z tego protokołu.

append(val: Any) None

Dołącza nowy element val na koniec tablicy, powiększając ją.

extend(iterable: Iterable) None

Dołącza nowe elementy zawarte w iterable na koniec tablicy, powiększając ją.

__getitem__(index: int | slice) Any

Indeksowany odczyt z tablicy, wywoływany jako a[index] (gdzie a jest array). Zwraca wartość, jeśli index jest typu int, oraz array, jeśli index jest wycinkiem (slice). Indeksy ujemne liczone są od końca, a jeśli indeks wykracza poza zakres, zgłaszany jest IndexError.

Uwaga: __getitem__ nie może być wywoływana bezpośrednio (a.__getitem__(index) zawodzi) i nie występuje w __dict__, jednak a[index] działa.

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

Indeksowany zapis do tablicy, wywoływany jako a[index] = value (gdzie a jest array). value jest pojedynczą wartością, jeśli index jest typu int, oraz array, jeśli index jest wycinkiem (slice). Indeksy ujemne liczone są od końca, a jeśli indeks wykracza poza zakres, zgłaszany jest IndexError.

Uwaga: __setitem__ nie może być wywoływana bezpośrednio (a.__setitem__(index, value) zawodzi) i nie występuje w __dict__, jednak a[index] = value działa.

__len__() int

Zwraca liczbę elementów w tablicy, wywoływana jako len(a) (gdzie a jest array).

Uwaga: __len__ nie może być wywoływana bezpośrednio (a.__len__() zawodzi) i metoda ta nie występuje w __dict__, jednak len(a) działa.

__add__(other: array) array

Zwraca nową array będącą konkatenacją tablicy z other, wywoływana jako a + other (gdzie a i other są obie arrays).

Uwaga: __add__ nie może być wywoływana bezpośrednio (a.__add__(other) zawodzi) i nie występuje w __dict__, jednak a + other działa.

__iadd__(other: array) array

Konkatenuje tablicę z other w miejscu, wywoływana jako a += other (gdzie a i other są obie arrays). Równoważne extend(other).

Uwaga: __iadd__ nie może być wywoływana bezpośrednio (a.__iadd__(other) zawodzi) i nie występuje w __dict__, jednak a += other działa.

__repr__() str

Zwraca reprezentację tekstową tablicy, wywoływana jako str(a) lub repr(a) (gdzie a jest array). Zwraca ciąg "array(<type>, [<elements>])", gdzie <type> jest literą kodu typu tablicy, a <elements> jest rozdzieloną przecinkami listą elementów tablicy.

Uwaga: __repr__ nie może być wywoływana bezpośrednio (a.__repr__() zawodzi) i nie występuje w __dict__, jednak zarówno str(a), jak i repr(a) działają.