我有两个:

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

如何在bytearray中插入(“prepend”)ba2
我试着做:
ba1.insert(0, ba2)

但这似乎不对。
我当然可以这样做:
ba2.extend(ba1)
ba1 = ba2

但如果ba1很大呢?
这是否意味着不必要地应对整个ba1
这个记忆有效吗?
我怎样才能预先设定aba1

最佳答案

你可以这样做:

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

09-27 16:10