Acest modul definește un tip de obiect care poate compact reprezintă o matrice ofbasic valori: caractere, numere întregi, numere în virgulă mobilă. Arrays sunt secvențietypes și se comportă foarte mult ca liste, cu excepția faptului că tipul de obiecte stocate în Them este constrâns. Tipul este specificat la momentul creării obiectului utilizând codul atype, care este un singur caracter., Următoarele coduri de tip aredefined:
Note:
-
poate fi de 16 biți sau 32 de biți, în funcție de platformă.
s-a Schimbat în versiunea 3.9:
array('u')
foloseste acumwchar_t
ca tip C în loc de a depreciatPy_UNICODE
. Această modificare nu afectează comportamentul său, deoarecePy_UNICODE
este alias alwchar_t
din Python 3.3.depreciate de la versiunea 3.3, vor fi eliminate în versiunea 4.0.,reprezentarea reală a valorilor este determinată de arhitectura mașinii(strict vorbind, de implementarea C). Dimensiunea reală poate fi accesatăprin atributul
itemsize
.modulul definește următoarele tipuri:
clasa
array.
array
(typecode)¶O nouă matrice ale căror elemente sunt restricționate de typecode, și initializedfrom opțional inițializare o valoare, care trebuie să fie o listă, abytes-ca obiect, sau iterable peste elemente de theappropriate tip.,
Dacă a dat o listă sau șir, inițializare este trecut la noua matrice e
fromlist()
,frombytes()
saufromunicode()
metoda (a se vedea mai jos)pentru a adăuga inițială elemente în matrice. În caz contrar, iterable inițializare ispassed laextend()
metoda.Ridică un audit eveniment
array.__new__
cu argumentetypecode
,initializer
.array.
typecodes
¶Un șir cu toate disponibile tip de coduri.,
obiectele matrice suportă operațiile ordinare de secvență de indexare,feliere, concatenare și multiplicare. Atunci când se utilizează felie de cesiune, assignedvalue trebuie să fie un obiect matrice cu același tip de cod; în toate celelalte cazuri,
TypeError
este ridicat. Obiectele Array implementează,de asemenea, interfața tampon și pot fi utilizate oriunde sunt acceptate obiecte asemănătoare octeților.următoarele elemente De date și metode sunt de asemenea suportate:
array.
typecode
¶typecode caracter folosit pentru a crea matrice.,
array.
itemsize
¶lungimea în octeți a o matrice element în reprezentarea internă.
array.
append
(x)¶Adăugați un nou element cu valoarea x la sfârșitul șirului.
array.
buffer_info
()¶Returna un tuplu
(address, length)
da curent adresă de memorie și lungimea în elemente de tampon utilizat pentru a păstra matrice conținutul. Dimensiunea tamponului thememory în octeți poate fi calculată caarray.buffer_info() *array.itemsize
., Acest lucru este uneori util atunci când se lucrează cu nivel scăzut (andinherently nesigur) interfețe I/O care necesită adrese de memorie, cum ar fi anumiteioctl()
operațiuni. Numerele returnate sunt valabile atâta timp cât arrayexists și nu se aplică operații de schimbare a lungimii.notă
când utilizați obiecte de matrice din cod scris în C sau C++ (singura modalitate de a utiliza în mod eficient aceste informații), are mai mult sens să utilizați bufferinterface susținută de obiecte de matrice. Această metodă este menținută pentru înapoicompatibilitate și ar trebui evitată în noul cod., Interfața tampon estedocumentat în Protocolul tampon.
array.
byteswap
()¶„Byteswap” toate elementele de matrice. Acest lucru este acceptată numai pentru valorile care are1, 2, 4 sau 8 octeți în dimensiune; pentru alte tipuri de valori,
RuntimeError
israised. Este util atunci când citirea datelor dintr-un fișier scris pe o mașină cu adiferite ordine octet.array.
count
(x)¶returnează numărul de apariții ale lui x din matrice.,
array.
extend
(iterable)¶Adăugare elemente de iterable la sfârșitul șirului. Dacă iterable este altularray, acesta trebuie să aibă exact același cod de tip; dacă nu,
TypeError
va fi ridicat. Dacă iterable nu este un tablou, acesta trebuie să fie iterabil și elementele saletrebuie să fie tipul potrivit pentru a fi anexat la matrice.array.
frombytes
(s)¶Adaugă elemente din șir, interpretarea șir ca o serie de machinevalues (ca și cum ar fi citit dintr-un fișier folosind
fromfile()
metoda).,Nou în versiunea 3.2:
fromstring()
este redenumitfrombytes()
pentru claritate.array.
fromfile
(f, n)¶Citeste n elemente (ca masina de valori) din fișierul obiect f și appendthem la sfârșitul șirului. Dacă este mai mică decât n elemente sunt disponibile,
EOFError
este ridicat, dar elementele care au fost disponibile sunt stillinserted în matrice. f trebuie să fie un obiect real fișier încorporat; somethingelse cu unread()
metoda nu va face.,array.
fromlist
(listă)¶Adăugare elemente din listă. Aceasta este echivalentă cu
for x in list:a.append(x)
cu excepția faptului că, dacă există o eroare de tip, matricea este neschimbată.array.
fromunicode
(S)¶extinde această matrice cu date din șirul unicode dat. Matrice trebuie să fie un tip
'u'
array; în caz contrar, unValueError
este ridicat. Utilizațiarray.frombytes(unicodestring.encode(enc))
pentru a adăuga date Unicode la anarray de alt tip.,array.
index
(x)¶returnați cel mai mic i astfel încât i este indicele primei apariții ofx în matrice.
array.
insert
(i, x)¶se Introduce un nou element cu valoarea x din matrice înainte de poziția de eu. Negativevalues sunt tratate ca fiind relativă la sfârșitul șirului.
array.
pop
()¶Elimină elementul cu indicele i din matrice și se întoarce., La optionalargument implicit
-1
, așa că, implicit, ultimul element este eliminat andreturned.array.
remove
(x)¶eliminați prima apariție a x din matrice.
array.
reverse
()¶inversa ordinea elementelor din matrice.
array.
tobytes
()¶Converti matrice pentru o serie de mașină de valorile și de a reveni la bytesrepresentation (aceeași secvență de octeți care vor fi scrise într-un fișier de
tofile()
metoda.,)Nou în versiunea 3.2:
tostring()
este redenumittobytes()
pentru claritate.array.
tofile
(f)¶Scrie toate elementele (ca masina de valori) la obiect fișier f.
array.
tolist
()¶Converti matrice pentru un obișnuit lista cu aceleași elemente.
array.
tounicode
()¶Converti matrice la un șir unicode. Matrice trebuie să fie un tip
'u'
array;în caz contrar, unValueError
este ridicat., Utilizațiarray.tobytes().decode(enc)
pentru a obține un șir unicode dintr-o matrice de alt tip.când un obiect matrice este imprimat sau convertit într-un șir, acesta este reprezentat ca
array(typecode, initializer)
. La inițializare este omis dacă matrice isempty, în caz contrar acesta este un șir dacă typecode este'u'
, în caz contrar aceasta este o listă de numere. Șirul este garantat de a fi capabil de a fi convertit înapoi la obiective cu același tip și de valoare, folosindeval()
, atât timp câtarray
class a fost importat folosindfrom array import array
.,Exemple:array('l')array('u', 'hello \u2641')array('l', )array('d', )
Vezi și
modulul
struct
ambalarea și despachetarea datelor binare eterogene.
Modulul
xdrlib
de Ambalare și despachetare de Externe de Reprezentare a Datelor (XDR) datele utilizate în someremote procedura sisteme de apel.
documentația numerică Python
extensia numerică Python (NumPy) definește un alt tip de matrice; seehttp://www.numpy.org/ pentru informații suplimentare despre Python numeric.