Dieses Modul definiert einen Objekttyp, der ein Array vonbasischen Werten kompakt darstellen kann: Zeichen, Ganzzahlen, Gleitkommazahlen. Arrays sind Sequenztypen und verhalten sich sehr ähnlich wie Listen, außer dass der Typ der darin gespeicherten Objekte eingeschränkt ist. Der Typ wird zum Zeitpunkt der Objekterstellung mithilfe des atype-Codes angegeben, bei dem es sich um ein einzelnes Zeichen handelt., Die folgenden Typcodes sinddefiniert:

Hinweise:

  1. Je nach Plattform können es 16 Bit oder 32 Bit sein.

    In Version 3.9 geändert: array('u') verwendet jetzt wchar_t als C-Typ anstelle der veraltetenPy_UNICODE. Diese Änderung wirkt sich nicht auf sein Verhalten aus, daPy_UNICODE seit Python 3.3 der Alias von wchar_t ist.

    Seit Version 3.3 veraltet, wird in Version 4.0 entfernt.,

Die tatsächliche Darstellung von Werten wird durch die Maschinenarchitektur bestimmt(streng genommen durch die C-Implementierung). Auf die tatsächliche Größe kann über das Attribut itemsize zugegriffen werden.

Das Modul definiert folgende eingeben:

classarray.array(typecode)¶

Ein neues array, dessen Elemente eingeschränkt typecode, und initializedfrom der optionalen Initialisierer Wert, die müssen, ist eine Liste, abytes-wie-Objekt, oder durchsuchbar über Elemente der theappropriate geben.,

Wenn eine Liste oder Zeichenfolge angegeben wird, wird der Initialisierer an die Methodefromlist(), frombytes() oder fromunicode() des neuen Arrays übergeben (siehe unten), um dem Array anfängliche Elemente hinzuzufügen. Andernfalls wird der iterierbare Initialisierer an die extend() – Methode übergeben.

Löst ein Auditing-Ereignis aus array.__new__ mit den Argumenten typecode, initializer.

array.typecodes

Eine Zeichenfolge mit allen verfügbaren Typ-codes.,

Array-Objekte unterstützen die normalen Sequenzoperationen von Indizierung,Schneiden, Verkettung und Multiplikation. Bei Verwendung der Slice-Zuweisung muss der zugewiesene Wert ein Array-Objekt mit demselben Typcode sein; In allen anderen Fällen wirdTypeError ausgelöst. Array-Objekte implementieren auch die Pufferschnittstelle und können überall dort verwendet werden, wo Byte-ähnliche Objekte unterstützt werden.

Die folgenden Datenelemente und Methoden werden ebenfalls unterstützt:

array.typecode

Das zum Erstellen des Arrays verwendete Typcode-Zeichen.,

array.itemsize

Die Länge eines Array-Elements in der internen Darstellung in Byte.

array.append(x)¶

Hängen Sie ein neues Element mit dem Wert x an das Ende des Arrays an.

array.buffer_info

()¶

Gibt ein Tupel zurück (address, length) gibt die aktuelle Speicheradresse und die Länge in Elementen des Puffers an, in dem der Inhalt des Arrays gespeichert ist. Die Größe des Thememory-Puffers in Bytes kann als array.buffer_info() *array.itemsizeberechnet werden., Dies ist gelegentlich nützlich, wenn Sie mit Low-Level – (undinhärent unsicheren) E/A-Schnittstellen arbeiten, für die Speicheradressen erforderlich sind, z. B. bestimmteioctl() – Operationen. Die zurückgegebenen Zahlen sind gültig, solange das arrayexists und keine Längenänderungsoperationen darauf angewendet werden.

Hinweis

Bei Verwendung von Array-Objekten aus in C oder C++ geschriebenem Code (die einzige Möglichkeit, diese Informationen effektiv zu nutzen) ist es sinnvoller, das von Array-Objekten unterstützte Bufferinterface zu verwenden. Diese Methode wird für die Rückwärtskompatibilität beibehalten und sollte in neuem Code vermieden werden., Die Pufferschnittstelle istdokumentiert im Pufferprotokoll.

array.byteswap()¶

„Byteswap“ alle Elemente des Arrays. Dies ist nur für die unterstützten Werte, die are1, 2, 4, oder 8 bytes in size; für andere Typen von Werten RuntimeError israised. Dies ist nützlich beim Lesen von Daten aus einer Datei, die auf einem Computer mit einer unterschiedlichen Bytereihenfolge geschrieben wurde.

array.count(x)¶

Gibt die Anzahl der Vorkommen von x im Array zurück.,

array.extend(iterierbar)¶

Elemente von iterierbar an das Ende des Arrays anhängen. Wenn iterierbar ist anotherarray, es muss genau der gleiche Typ-code; wenn nicht, TypeError willbe angehoben. Wenn iterable kein Array ist, muss es iterierbar sein und seine Elementmuss der richtige Typ sein, um an das Array angehängt zu werden.

array.(s)¶

Hängt Elemente aus der Zeichenfolge an und interpretiert die Zeichenfolge als Array von machinevalues (als wäre sie mit der fromfile() – Methode aus einer Datei gelesen worden).,

Neu in Version 3.2: fromstring() wird aus Gründen der Übersichtlichkeit in frombytes() umbenannt.

array.fromfile(f, n)¶

Lesen Sie n Elemente (als Maschinenwerte) aus dem Dateiobjekt f und appendthem bis zum Ende des Arrays. Wenn weniger als n Elemente verfügbar sind, wirdEOFError ausgelöst, die verfügbaren Elemente werden jedoch weiterhin in das Array eingefügt. f muss ein echtes integriertes Dateiobjekt sein; somethingelse mit einerread() – Methode reicht nicht aus.,

array.fromlist(Liste)¶

Elemente aus der Liste anhängen. Dies entspricht for x in list:a.append(x) mit der Ausnahme, dass das Array unverändert ist, wenn ein Typfehler vorliegt.

array.fromunicode(s)¶

Erweitert dieses array mit den Daten aus dem angegebenen unicode-string. Das Array muss ein Array vom Typ 'u'; andernfalls wird eine ValueError ausgelöst. Verwenden Siearray.frombytes(unicodestring.encode(enc)), um Unicode-Daten an ein Array eines anderen Typs anzuhängen.,

array.index(x)¶

Gibt das kleinste i so zurück, dass i der Index des ersten Auftretens vonx im Array ist.

array.insert(i, x)¶

Fügen Sie ein neues Element mit dem Wert x in das Array ein, bevor Position i. Negative Werte werden relativ zum Ende des Arrays behandelt.

array.pop()¶

Entfernt das Element mit dem index i aus dem array und gibt es zurück., Das optionalargument ist standardmäßig -1, sodass standardmäßig das letzte Element entfernt und zurückgesetzt wird.

array.remove(x)¶

Entfernen Sie das erste vorkommen von x aus der Reihe.

array.reverse()¶

die Reihenfolge der Elemente im array.

array.tobytes()¶

Konvertieren Sie das Array in ein Array von Maschinenwerten und geben Sie die bytesrepresentation zurück (dieselbe Folge von Bytes, die von der tofile() – Methode in eine Datei geschrieben würden.,)

Neu in Version 3.2: tostring() wird aus Gründen der Übersichtlichkeit in tobytes() umbenannt.

array.tofile(f)¶

Schreiben Sie alle Elemente (als Maschinenwerte) in das Dateiobjekt f.

array.tolist()¶

Konvertieren Sie das Array in eine gewöhnliche Liste mit denselben Elementen.

array.tounicode()¶

Konvertieren Sie das array in einen unicode-string. Das Array muss ein Array vom Typ 'u'; andernfalls wird eine ValueError ausgelöst., Verwenden Sie array.tobytes().decode(enc) toobtain eine Unicode-Zeichenfolge aus einem Array eines anderen Typs.

Wenn ein Array-Objekt gedruckt oder in einen String konvertiert wird, wird es alsarray(typecode, initializer)dargestellt. Der Initialisierer wird weggelassen, wenn das Array fehlerhaft ist, andernfalls ist es eine Zeichenfolge, wenn der Typcode 'u', andernfalls ist es eine Liste von Zahlen. Die Zeichenfolge kann garantiert mit eval() in ein Array mit demselben Typ und Wert konvertiert werden, solange diearray – Klasse mit from array import arrayimportiert wurde>.,Beispiele:

array('l')array('u', 'hello \u2641')array('l', )array('d', )

Siehe auch

Modul struct

Packen und Entpacken heterogener Binärdaten.

Modul xdrlib

Packen und Entpacken von XDR-Daten (External Data Representation), wie sie in someremote Procedure call Systemen verwendet werden.

Die numerische Python-Dokumentation

Die numerische Python-Erweiterung (NumPy) definiert einen anderen Array-Typ; siehettp://www.numpy.org/ für weitere Informationen über numerische Python.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.