Prepending bytearray: TypeError: an integer is required

Prepending bytearray: TypeError: an integer is required

我有两个bytearray

ba1 = bytearray(b'abcdefg')
ba2 = bytearray(b'X')

如何在 ba1 中插入 ("prepend") ba2

我试过:

ba1.insert(0, ba2)

但这似乎不正确。

当然我可以这样做:

ba2.extend(ba1)
ba1 = ba2

但是如果ba1很大呢? 这是否意味着对整个 ba1 进行不必要的处理? 这样内存效率高吗?

如何在前面添加 bytearray

你可以这样做:

ba1 = bytearray(b'abcdefg')
ba2 = bytearray(b'X')

ba1 = ba2 + ba1
print(ba1)  # --> bytearray(b'Xabcdefg')

为了更明显地表明正在执行开头的插入操作,您可以改用此方法:

ba1[:0] = ba2  # Inserts ba2 into beginning of ba1.

另请注意,作为一种特殊情况,您知道 ba2 只有一个字节长,这会起作用:

ba1.insert(0, ba2[0])  # Valid only if len(ba2) == 1