Was ist der Unterschied zwischen Bytes und Byterray in Python?


Antwort 1:

Es gibt nur einen Unterschied zwischen Byteketten und Bytearrays: Byteketten sind unveränderlich und Bytearrays sind veränderlich. Python bietet jedoch beides, da einige Anwendungen mit unveränderlichen Zeichenfolgen nur eine geringe Leistung erbringen. Beispielsweise muss bei E / A-Vorgängen, die das Puffern beinhalten, für jede Hinzufügung zum Puffer ein neuer Speicher für die Verkettung und das Kopieren zugewiesen werden. Dies ist ein langsamer Prozess, weshalb ein Array mit veränderlichen Bytes zur Rettung kommt.


Antwort 2:

Python unterstützt eine Reihe von Typen zum Speichern von Sequenzen. Es gibt sechs Sequenztypen: Strings, Byte-Sequenzen (Byte-Objekte), Byte-Arrays (Byte-Array-Objekte), Listen, Tupel und Bereichsobjekte. Bytes und Bytearray-Objekte enthalten einzelne Bytes - das erstere ist unveränderlich, während das letztere eine veränderbare Sequenz ist. Bytes-Objekte können mit dem Konstruktor bytes () und aus Literalen erstellt werden. Verwenden Sie ein b-Präfix mit der normalen Zeichenfolgensyntax: b'python '. Verwenden Sie zum Erstellen von Byte-Arrays die Funktion bytearray ().

bytes () Funktion:

Geben Sie ein neues "Byte" -Objekt zurück, bei dem es sich um eine unveränderliche Folge kleiner Ganzzahlen im Bereich 0 <= x <256 handelt, und drucken Sie es bei der Anzeige als ASCII-Zeichen. bytes ist eine unveränderbare Version von bytearray - es hat die gleichen nicht mutierenden Methoden und das gleiche Indizierungs- und Slicing-Verhalten.

Syntax:

Bytes ([Quelle [, Codierung [, Fehler]]])

bytearray () Funktion:

Gibt ein neues Array von Bytes zurück. Der Bytearray-Typ ist eine veränderbare Folge von ganzen Zahlen im Bereich 0 <= x <256. Er verfügt über die meisten der in Mutable Sequence Types beschriebenen üblichen Methoden für veränderbare Folgen sowie über die meisten Methoden des Bytes-Typs, siehe Bytes und Byte-Array-Methoden.

Syntax:

bytearray ([Quelle [, Kodierung [, Fehler]]])