【发布时间】:2012-05-17 10:22:45
【问题描述】:
我有两个网络缓冲区定义为:
buffer1 = bytearray(4096)
buffer2 = bytearray(4096)
在不分配额外内存的情况下,将内容从buffer2 移动到buffer1 的最快方法是什么?
天真的方法是:
for i in xrange(4096):
buffer1[i] = buffer2[i]
显然,如果我这样做 buffer1[:]=buffer2[:] python 会移动内容,但我不能 100% 确定,因为如果我这样做:
a = bytearray([0,0,0])
b = bytearray([1,1])
a[:]=b[:]
然后len(a)=2。丢失的字节会发生什么?谁能解释这是如何工作的或如何在缓冲区之间移动数据?
谢谢。
【问题讨论】:
-
我认为您在第一个代码中所做的是“将内容从 buffer2 移动到 buffer1”,而不是相反。
-
感谢@jadkik94,已修复。