So kopieren Sie ein python-bytearray Puffer?

Habe ich zwei Netzwerk-Puffer definiert als:

buffer1 = bytearray(4096)
buffer2 = bytearray(4096)

Welche ist die Schnellste Möglichkeit zum verschieben der Inhalte von buffer2 zu buffer1 ohne die Zuweisung zusätzlicher Speicher?

Den naiven Weise wäre zu tun:

for i in xrange(4096):
    buffer1[i] = buffer2[i]

Anscheinend, wenn ich buffer1[:]=buffer2[:] python bewegt die Inhalte, aber ich bin mir nicht 100% sicher, weil wenn ich tun:

a = bytearray([0,0,0])
b = bytearray([1,1])
a[:]=b[:]

dann len(a)=2. Was passiert mit den fehlenden byte? Kann mir jemand erklären, wie das funktioniert oder wie verschieben von Daten zwischen Puffer?

Dank.

Ich denke, was du tust, in deinem ersten code ist "verschieben Sie den Inhalt von buffer2, ist buffer1", nicht das Gegenteil.
danke @jadkik94, behoben.

InformationsquelleAutor josgek | 2012-05-17

Schreibe einen Kommentar