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 |
|---|---|---|---|
|
|
1 |
|
|
|
1 |
|
|
|
2 |
|
|
|
2 |
|
|
|
2 lub 4 |
|
|
|
2 lub 4 |
|
|
|
4 |
|
|
|
4 |
|
|
|
8 |
|
|
|
8 |
|
|
|
4 |
|
|
|
8 |
|
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
memoryviewlub inne interfejsy korzystające z tego protokołu.- 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](gdzieajestarray). Zwraca wartość, jeśli index jest typuint, orazarray, jeśli index jest wycinkiem (slice). Indeksy ujemne liczone są od końca, a jeśli indeks wykracza poza zakres, zgłaszany jestIndexError.Uwaga:
__getitem__nie może być wywoływana bezpośrednio (a.__getitem__(index)zawodzi) i nie występuje w__dict__, jednaka[index]działa.
- __setitem__(index: int | slice, value: Any) None¶
Indeksowany zapis do tablicy, wywoływany jako
a[index] = value(gdzieajestarray).valuejest pojedynczą wartością, jeśli index jest typuint, orazarray, jeśli index jest wycinkiem (slice). Indeksy ujemne liczone są od końca, a jeśli indeks wykracza poza zakres, zgłaszany jestIndexError.Uwaga:
__setitem__nie może być wywoływana bezpośrednio (a.__setitem__(index, value)zawodzi) i nie występuje w__dict__, jednaka[index] = valuedziała.
- __len__() int¶
Zwraca liczbę elementów w tablicy, wywoływana jako
len(a)(gdzieajestarray).Uwaga:
__len__nie może być wywoływana bezpośrednio (a.__len__()zawodzi) i metoda ta nie występuje w__dict__, jednaklen(a)działa.
- __add__(other: array) array¶
Zwraca nową
arraybędącą konkatenacją tablicy z other, wywoływana jakoa + other(gdzieai other są obiearrays).Uwaga:
__add__nie może być wywoływana bezpośrednio (a.__add__(other)zawodzi) i nie występuje w__dict__, jednaka + otherdziała.
- __iadd__(other: array) array¶
Konkatenuje tablicę z other w miejscu, wywoływana jako
a += other(gdzieai other są obiearrays). Równoważneextend(other).Uwaga:
__iadd__nie może być wywoływana bezpośrednio (a.__iadd__(other)zawodzi) i nie występuje w__dict__, jednaka += otherdziała.
- __repr__() str¶
Zwraca reprezentację tekstową tablicy, wywoływana jako
str(a)lubrepr(a)(gdzieajestarray). 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ównostr(a), jak irepr(a)działają.