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:

  1. 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 alias wchar_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.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *