array — numeerisen datan taulukot

Tämä moduuli määrittelee array.array -tyypin: tilatehokkaan sekvenssin yhden kiinteän numeerisen tyypin arvoja, joka on indeksoitavissa listan tapaan mutta jota tukee yhtenäinen muistilohko, johon päästään käsiksi puskuriprotokollan kautta.

Tuetut tyyppikoodit

Yksimerkkinen typecode -argumentti valitsee elementtityypin:

Tyyppikoodi

C-tyyppi

Tavut

Python-tyyppi

'b'

signed char

1

int

'B'

unsigned char

1

int

'h'

signed short

2

int

'H'

unsigned short

2

int

'i'

signed int

2 tai 4

int

'I'

unsigned int

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

Koodit 'f' ja 'd' edellyttävät liukulukutuella käännettyä laiteohjelmistoa (oletus useimmilla korteilla). Koodien 'i' ja 'I' tarkka leveys noudattaa isäntä-C-ABI:a — tyypillisesti 4 tavua Cortex-M-porteilla.

Luokat

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

Luo taulukko annetun tyypin elementeillä. Taulukon alkusisältö annetaan iterable -argumentilla. Jos sitä ei anneta, luodaan tyhjä taulukko.

Alla olevien metodien lisäksi taulukko-objektit toteuttavat myös puskuriprotokollan. Tämä tarkoittaa, että koko taulukon sisältöön päästään käsiksi raakatavuina memoryview -näkymän tai muiden tätä protokollaa käyttävien rajapintojen kautta.

append(val: Any) None

Lisää uusi elementti val taulukon loppuun kasvattaen sitä.

extend(iterable: Iterable) None

Lisää iterable -argumentin sisältämät uudet elementit taulukon loppuun kasvattaen sitä.

__getitem__(index: int | slice) Any

Taulukon indeksoitu luku, kutsutaan muodossa a[index] (jossa a on array). Palauttaa arvon, jos index on int, ja array -taulukon, jos index on viipale (slice). Negatiiviset indeksit lasketaan lopusta, ja IndexError nostetaan, jos indeksi on alueen ulkopuolella.

Huomautus: __getitem__ -metodia ei voi kutsua suoraan (a.__getitem__(index) epäonnistuu) eikä se ole läsnä __dict__ -sanakirjassa, mutta a[index] toimii kuitenkin.

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

Taulukon indeksoitu kirjoitus, kutsutaan muodossa a[index] = value (jossa a on array). value on yksittäinen arvo, jos index on int, ja array -taulukko, jos index on viipale (slice). Negatiiviset indeksit lasketaan lopusta, ja IndexError nostetaan, jos indeksi on alueen ulkopuolella.

Huomautus: __setitem__ -metodia ei voi kutsua suoraan (a.__setitem__(index, value) epäonnistuu) eikä se ole läsnä __dict__ -sanakirjassa, mutta a[index] = value toimii kuitenkin.

__len__() int

Palauttaa taulukon kohteiden lukumäärän, kutsutaan muodossa len(a) (jossa a on array).

Huomautus: __len__ -metodia ei voi kutsua suoraan (a.__len__() epäonnistuu) eikä metodi ole läsnä __dict__ -sanakirjassa, mutta len(a) toimii kuitenkin.

__add__(other: array) array

Palauttaa uuden array -taulukon, joka on taulukon ja other -taulukon yhdistelmä, kutsutaan muodossa a + other (jossa a ja other ovat molemmat arrays).

Huomautus: __add__ -metodia ei voi kutsua suoraan (a.__add__(other) epäonnistuu) eikä se ole läsnä __dict__ -sanakirjassa, mutta a + other toimii kuitenkin.

__iadd__(other: array) array

Yhdistää taulukon ja other -taulukon paikan päällä, kutsutaan muodossa a += other (jossa a ja other ovat molemmat arrays). Vastaa toimintoa extend(other).

Huomautus: __iadd__ -metodia ei voi kutsua suoraan (a.__iadd__(other) epäonnistuu) eikä se ole läsnä __dict__ -sanakirjassa, mutta a += other toimii kuitenkin.

__repr__() str

Palauttaa taulukon merkkijonoesityksen, kutsutaan muodossa str(a) tai repr(a) (jossa a on array). Palauttaa merkkijonon "array(<type>, [<elements>])", jossa <type> on taulukon tyyppikoodikirjain ja <elements> on pilkuilla eroteltu luettelo taulukon elementeistä.

Huomautus: __repr__ -metodia ei voi kutsua suoraan (a.__repr__() epäonnistuu) eikä se ole läsnä __dict__ -sanakirjassa, mutta str(a) ja repr(a) toimivat molemmat kuitenkin.