Python:连接两个bytearray对象

39
我想将一个字节数组连接到另一个字节数组。我认为这可能会起作用:
byt1 = bytearray(10)
byt2 = bytearray(10)
byt1.join(byt2)
print(repr(byt1))

``` byt1.join(byt2) TypeError: 序列项 0:期望 bytes 类型对象,但找到了 int 类型 ```
针对这个问题,最有效的解决方法是什么?

4
这句话的意思是将byt2的内容添加到byt1的末尾。 - Tom Lynch
@TomLynch 把它放在一个答案中,谢谢! - pstanton
我觉得我已经知道了!!现在我感觉想要给我的问题点个踩(捂脸) - pstanton
即使那样做可以运行,也不会产生你想要的效果:.join 方法会创建一个新对象,而不是执行原位突变。此外,.join 不会连接字符串。考虑使用 'abc'.join('123') - PM 2Ring
2个回答

62

从两个bytearray创建一个新的合并bytearray:

byt_combined = byt1 + byt2

使用另一个bytearray扩展一个bytearray。这会改变byt1

byt1.extend(byt2)

9
byt1 += byt2 将执行就地修改(in-place)的 .extend 操作,但使用该方法的优点是,即使 byt1 不是本地变量,它也会被改变。 - PM 2Ring

11

你可以像下面这样将一个字节加入到数组中:

    b"".join([bytearray(10), bytearray(10)])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接