Tento modul definuje typ objektu, který může kompaktně reprezentovat pole ofbasic hodnoty: znaky, celá čísla, čísla s plovoucí desetinnou čárkou. Pole jsou sekvencetypy a chovají se velmi podobně jako seznamy, kromě toho, že typ objektů uloženýchje omezen. Typ je zadán v době vytvoření objektu pomocí kódu atype, což je jediný znak., Následující typové kódy jsoudefinováno:
poznámky:
-
může to být 16 bitů nebo 32 bitů v závislosti na platformě.
Změnil ve verzi 3.9:
array('u')
používáwchar_t
jako typ C namísto zastaraléPy_UNICODE
. Tato změna nemá vliv na jeho chování, protožePy_UNICODE
je aliaswchar_t
od Pythonu 3.3.zastaralé od verze 3.3, budou odstraněny ve verzi 4.0.,
skutečná reprezentace hodnot je určena architekturou stroje (přísně řečeno implementací C). Ke skutečné velikosti lze přistupovat pomocí atributuitemsize
.
modul definuje následující typ:
třídaarray.
array
(typecode)¶
nové pole, jehož položky jsou omezeny typecode, a initializedfrom volitelné inicializátor hodnota, která musí být seznam, abytes-jako objekt, nebo iterable nad prvky příslušné typu.,
Pokud daný seznam nebo řetězec, inicializátoru je předán do nového pole jefromlist()
frombytes()
nebo fromunicode()
metoda (viz níže)přidat počáteční položky do pole. V opačném případě je iterovatelný inicializátorprošel k metodě extend()
.
Vyvolává auditu událost array.__new__
argumenty typecode
initializer
.
array.
typecodes
¶
řetězec se všemi dostupnými typovými kódy.,
objekty pole podporují běžné sekvenční operace indexování,krájení, zřetězení a násobení. Při použití plátek úkol, assignedvalue musí být pole objektu se stejným typem kódu; ve všech ostatních případech,TypeError
je aktivována. Objekty pole také implementují rozhraní vyrovnávací paměti a mohou být použity všude tam, kde jsou podporovány objekty podobné bajtům.
následující datové položky a metody jsou také podporovány:
array.
typecode
¶
typecode znak použitý k vytvoření pole.,
array.
itemsize
¶
délka v bajtech jedné položky pole ve vnitřní reprezentaci.
array.
append
(x)¶
připojte novou položku s hodnotou x na konec pole.
array.
buffer_info
()¶
Návrat tuple (address, length)
dávat aktuální adresa paměti a délce prvky vyrovnávací paměti používané k držení pole je obsah. Velikost themememory bufferu v bajtech lze vypočítat jako array.buffer_info() *array.itemsize
., Tohle je občas užitečné při práci s low-level (andinherently nebezpečné) I/O rozhraní, které vyžadují paměťové adresy, napříkladioctl()
operace. Vrácená čísla jsou platná tak dlouho, dokud se na ně nevztahují arrayexists a žádné operace měnící délku.
Poznámka:
Při použití pole objektů z kód napsaný v C nebo C++ (jediný způsob, jak toeffectively využít této informace), to dává větší smysl používat bufferinterface podporován pole objektů. Tato metoda je zachována pro pozadíkompatibilita a je třeba se jí vyhnout v novém kódu., Rozhraní vyrovnávací paměti je dokumentováno v protokolu bufferu.
array.
byteswap
()¶
„Byteswap“ všechny položky pole. To je podporováno pouze pro hodnoty, které mají Velikost 1, 2, 4 nebo 8 bajtů; pro jiné typy hodnot RuntimeError
. To je užitečné při čtení dat ze souboru napsaného na počítači s adirůzné pořadí bajtů.
array.
count
(x)¶
vraťte počet výskytů x v poli.,
array.
extend
(iterable)¶
Přidat položky z iterable na konec pole. Je-li iterable anotherarray, musí mít přesně stejný typový kód; pokud ne, TypeError
willbe zvýšen. Pokud iterable není pole, musí být iterovatelné a jeho prvkymusí být správným typem, který má být připojen k poli.
array.
frombytes
(y)¶
Přidá položky z řetězce, tlumočení řetězec jako pole machinevalues (jako kdyby to byl číst ze souboru pomocí fromfile()
metoda).,
novinka ve verzi 3.2: fromstring()
je přejmenována na frombytes()
pro přehlednost.
array.
fromfile
(f, n)¶
Přečtěte si n položek (jako stroj hodnoty) ze souboru objektu f a appendthem na konec pole. Pokud je k dispozici méně než n položky,EOFError
se zvýší, ale položky, které byly k dispozici, jsou stále vloženy do pole. f musí být skutečný vestavěný objekt souboru; něco sread()
metoda nebude dělat.,
array.
fromlist
(seznam)¶
Přidat položky ze seznamu. To odpovídá for x in list:a.append(x)
kromě toho, že pokud dojde k chybě typu, pole se nezmění.
array.
fromunicode
(s)¶
rozšiřuje toto pole o data z daného řetězce unicode. Pole musí mít typ'u'
pole; jinak se zvýší ValueError
. Použijtearray.frombytes(unicodestring.encode(enc))
pro připojení dat Unicode k anarray nějakého jiného typu.,
array.
index
(x)¶
vraťte nejmenší i tak, že jsem indexem prvního výskytu X v poli.
array.
insert
(i, x)¶
Vložit novou položku s hodnotu x v poli před pozici jsem. Negativevalues jsou považovány za relativní až na konec pole.
array.
pop
()¶
Odstraní položku s indexem jsem z pole a vrátí jej., Výchozí hodnota optionalargument je -1
, takže ve výchozím nastavení je poslední položka odstraněna aotočena.
array.
remove
(x)¶
odstraňte první výskyt X z pole.
array.
reverse
()¶
zvrátit pořadí položek v poli.
array.
tobytes
()¶
Převést pole na pole stroje hodnot a vrátí bytesrepresentation (stejnou posloupnost bajtů, které budou zapsány do souboru, které tofile()
metoda.,)
novinka ve verzi 3.2: tostring()
je přejmenována na tobytes()
pro přehlednost.
array.
tofile
(f)¶
Napište všechny položky (jako stroj hodnoty) k souboru, objekt f.
array.
tolist
()¶
Převést pole na obyčejný seznam s stejné položky.
array.
tounicode
()¶
převést pole na řetězec unicode. Pole musí být typu'u'
pole; jinak se zvýší ValueError
., Použijte array.tobytes().decode(enc)
toobtain řetězec unicode z pole nějakého jiného typu.
když je objekt pole vytištěn nebo převeden na řetězec, je reprezentován jakoarray(typecode, initializer)
. Inicializátoru je vynechán v případě, že pole isempty, jinak je to řetězec, pokud typecode 'u'
, v opačném případě je seznam čísel. Řetězec je zaručeno, že bude moci být převeden zpět do anarray s stejného typu a stejné hodnoty pomocí eval()
, tak dlouho, jakarray
třída byla dovezena pomocí from array import array
.,Příklady:
array('l')array('u', 'hello \u2641')array('l', )array('d', )
Viz také:
Modul struct
Balení a vybalování heterogenní binární data.
modul xdrlib
balení a rozbalení dat externího zastoupení dat (XDR)používaných v systémech someremote procedure call.
Číselná Dokumentace Pythonu
Numeric Python extension (NumPy) definuje další typ pole; seehttp://www.numpy.org/ pro další informace o Numerické Python.