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ą.