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
我有两个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