bytearray 可变
bytes 不可变
经过测试 发现 bytearray 再累加方面 要比 bytes 快非常多
另外注意一下 :bytearray.extend 比 .append 好用很多
a1 = [1, 2, 3, 4]
a2 = [5, 6, 7, 8]
b1 = bytes(a1)
b2 = bytes(a2)
b3 = b1 + b2
print(b3)
b3 = bytearray()
b3.extend(b1)
b3.extend(b2)
print(b3[0:6], type(b3[0:6]))
b3 = bytes()
start = time.perf_counter()
for i in range(1000):
b3 = b3 + b1 + b2
end = time.perf_counter()
print("k1", str(end - start), len(b3))
b3 = bytearray()
start = time.perf_counter()
for i in range(1000):
b3.extend(b1)
b3.extend(b2)
b3 = bytes(b3)
end = time.perf_counter()
print("k2", str(end - start), len(b3))
输出结果
b'\x01\x02\x03\x04\x05\x06\x07\x08'
16909060
bytearray(b'\x01\x02\x03\x04\x05\x06') <class 'bytearray'>
16909060
k1 0.002623792000000069 8000
k2 0.0005960599999998983 8000