Arrays sind keine in Python integrierte Standarddatenstruktur, aber mit dem Array-Modul können wir auch Array-Strukturen in Python verwenden. Im Folgenden erklären wir ausführlich die Verwendung des Array-Moduls in Python
Initialisierung
Array-Instanziierung kann einen Parameter zur Beschreibung des zulässigen Datentyps bereitstellen und auch eine anfängliche Datensequenz im Array speichern.
import array import binascii s = 'This is the array.' a = array.array('c', s) print 'As string:', s print 'As array :', a print 'As hex :', binascii.hexlify(a)
Das Array ist so konfiguriert, dass es eine Folge von Bytes enthält, die mit einer einfachen Zeichenfolge initialisiert wird.
>>> ================================ RESTART ================================ >>> As string: This is the array. As array : array('c', 'This is the array.') As hex : 54686973206973207468652061727261792e
Der Umgang mit Arrays
ähnelt anderen Python-Sequenzen und kann im erweitert werden auf die gleiche Weise und Array verarbeiten.
import array import pprint a = array.array('i', xrange(3)) print 'Initial :', a a.extend(xrange(3)) print 'Extended:', a print 'slice: :', a[2:5] print 'Itetator:' print list(enumerate(a))
Zu den unterstützten Vorgängen gehören Sharding, Iteration und das Hinzufügen von Elementen am Ende.
>>> ================================ RESTART ================================ >>> Initial : array('i', [0, 1, 2]) Extended: array('i', [0, 1, 2, 0, 1, 2]) slice: : array('i', [2, 0, 1]) Itetator: [(0, 0), (1, 1), (2, 2), (3, 0), (4, 1), (5, 2)]
Arrays und Dateien
Dedizierte integrierte Methoden zum effizienten Lesen/Schreiben von Dateien kann verwendet werden. Schreibt den Inhalt eines Arrays in eine Datei oder liest ein Array aus einer Datei.
import array import binascii import tempfile a = array.array('i', xrange(5)) print 'A1: ',a output = tempfile.NamedTemporaryFile() a.tofile(output.file) output.flush with open(output.name, 'rb') as input: raw_input = input.read() print 'Raw Contents:', binascii.hexlify(raw_data) input.seek(0) a2 = array.array('i') a2.fromfile(input, len(a)) print 'A2: ', a2
Kandidaten-Bytereihenfolge
Wenn die Daten im Array dies nicht tun Wenn Sie eine inhärente Bytereihenfolge verwenden oder die Reihenfolge vor dem Senden an ein System mit einer anderen Bytereihenfolge vertauschen müssen, ist es möglich, das gesamte Array in Python zu konvertieren, ohne jedes Element durchlaufen zu müssen.
import array import binascii def to_hex(a): chars_per_item = a.itemsize * 2 hex_version = binascii.hexlify(a) num_chunks = len(hex_version) / chars_per_item for i in xrange(num_chunks): start = i * chars_per_item end = start + chars_per_item yield hex_version[start:end] a1 = array.array('i', xrange(5)) a2 = array.array('i', xrange(5)) a2.byteswap() fmt = '%10s %10s %10s %10s' print fmt % ('A1_hex', 'A1', 'A2_hex', 'A2') print fmt % (('-' * 10,) * 4) for value in zip(to_hex(a1), a1, to_hex(a2), a2): print fmt % value
byteswap() vertauscht die Bytereihenfolge der Elemente im C-Array, was viel effizienter ist als das Durchlaufen von Daten in Python .
>>> ================================ RESTART ================================ >>> A1_hex A1 A2_hex A2 ---------- ---------- ---------- ---------- 00000000 0 00000000 0 01000000 1 00000001 16777216 02000000 2 00000002 33554432 03000000 3 00000003 50331648 04000000 4 00000004 67108864
Das obige ist der detaillierte Inhalt vonVerwandte Verwendungen des Array-Array-Moduls in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!