Tôi đã hai bộ đệm mạng định nghĩa là:Làm thế nào để sao chép một bộ đệm python bytearray?
buffer1 = bytearray(4096)
buffer2 = bytearray(4096)
Đó là cách nhanh nhất để di chuyển nội dung từ buffer2
để buffer1
mà không phân bổ thêm bộ nhớ?
Cách ngây thơ sẽ làm:
for i in xrange(4096):
buffer1[i] = buffer2[i]
Rõ ràng nếu tôi làm buffer1[:]=buffer2[:]
trăn di chuyển nội dung, nhưng tôi không chắc chắn 100% của nó vì nếu tôi làm:
a = bytearray([0,0,0])
b = bytearray([1,1])
a[:]=b[:]
rồi len(a)=2
. Điều gì xảy ra với byte bị thiếu? Bất cứ ai có thể giải thích cách hoạt động này hoặc làm thế nào để di chuyển dữ liệu giữa các bộ đệm?
Cảm ơn.
Tôi nghĩ rằng những gì bạn đang làm trong mã đầu tiên của bạn là "di chuyển nội dung từ buffer2 đến buffer1", không phải ngược lại. – jadkik94
cảm ơn @ jadkik94, đã được sửa. – josgek