0

很抱歉,像这样的半复杂数组操作在 Python 中对我来说仍然很尴尬。

我在 Python 中有一个数组,我用它创建了一个数组,[0xff]*1024现在我想将它的子序列设置为我计算的数据,所以假设我已经计算[0x01,0x02,0x03,0x04]并希望将它放在第一个数组中的特定位置,比如 10 个字节。

所以现在我的数组应该是这样的:

[0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x02,0x03,0x04,0xff,0xff, ... ]

我仍然希望数组长度为 1024 字节。我需要插入其中几个子序列。到目前为止,我有:

a = [0xff]*1024
b = [0x01,0x02,0x03,0x04]

我不确定如何将两者合并在一起。没有appendinsert或者extend是我正在寻找的。b可以是任意长度。

4

2 回答 2

2

你想要列表切片

a = [0xff]*1024
b = [0x01,0x02,0x03,0x04]
a[10:14] = b

这将获取(含)中第 10 个和第 14 个值之间的四个值a,并将它们更改为 的内容b。没有必要去a[10] = b[0];a[11] = b[1](等),因为python已经通过解包列表来处理这个问题。

于 2013-09-19T02:31:03.483 回答
1

你正在寻找切片。

a[10:14] = b

将替换a[10]b[0]、、和。_ _a[11]b[1]a[12]b[2]a[13]b[3]

阅读文档以获取更多信息;-)

于 2013-09-19T02:33:02.683 回答