i", 1)) b = by-6ren">
gpt4 book ai didi

python - 将 bytearray 插入 bytearray Python

转载 作者:太空宇宙 更新时间:2023-11-04 02:41:36 27 4
gpt4 key购买 nike

我试图在开始时将一个字节数组插入到另一个字节数组中。这是我正在努力完成的一个简单示例。

import struct
a = bytearray(struct.pack(">i", 1))
b = bytearray(struct.pack(">i", 2))
a = a.insert(0, b)
print(a)

但是失败并出现以下错误:

a = a.insert(0, b)TypeError:需要一个整数

最佳答案

bytearray是一个序列类型,它支持基于切片的操作。 “在位置 i 处插入”带有切片的习语是这样的 x[i:i] = <a compatible sequence> .所以,对于拳头的位置:

>>> a
bytearray(b'\x00\x00\x00\x01')
>>> b
bytearray(b'\x00\x00\x00\x02')
>>> a[0:0] = b
>>> a
bytearray(b'\x00\x00\x00\x02\x00\x00\x00\x01')

对于第三位置:

>>> a
bytearray(b'\x00\x00\x00\x01')
>>> b
bytearray(b'\x00\x00\x00\x02')
>>> a[2:2] = b
>>> a
bytearray(b'\x00\x00\x00\x00\x00\x02\x00\x01')

请注意,这不等同于 .insert ,因为对于序列,.insert 将整个对象作为第 i 个元素插入。因此,请考虑以下带有列表的简单示例:

>>> y = ['a','b']
>>> x.insert(0, y)
>>>
>>> x
[['a', 'b'], 1, 2, 3]

真正想要的是:

>>> x
[1, 2, 3]
>>> y
['a', 'b']
>>> x[0:0] = y
>>> x
['a', 'b', 1, 2, 3]

关于python - 将 bytearray 插入 bytearray Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46331220/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com