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]

2つをマージする方法がわかりません。のどれもappendinsertまたはextend私が探しているものです。b任意の長さにすることができます。

4

2 に答える 2

2

リストのスライスが必要です:

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

これは の 10 番目から 14 番目の値までの 4 つの値を取得し、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 に答える