3次元リスト(a_set)の中身をfor文でまわして、あたらしい配列(c)にシフト演算させた値(a)を格納したいのですが、c[k].append~の部分で以下のエラーが発生します。
python
1~~省略~~~ 2 3c = [] 4s_data = data[0x8000:0x9000] 5 6def split_list(l, n): 7 for idx in range(0, len(l), n): 8 yield l[idx:idx + n] 9 10result = list(split_list(s_data,2)) 11a_set = list(split_list(result,8)) 12#a_setの要素数は[256][8][2]になります。 13 14k = 0 15for i in a_set: 16 l = 0 17 for ii in i: 18 a = a_set[k][l][0] 19 #b = a_set[k][l][1] 20 shift = 7 21 for iii in range(8): 22 c[k].append(a >> shift) 23 shift -= 1 24 l += 1 25 k += 1
Traceback (most recent call last):
File "/home/hogehoge/emu/test_road_tiles.py", line 46, in <module>
c[k].append(a >> shift)
IndexError: list index out of range
このエラーはcリストを初期化する際に、要素数が宣言されていないためかと思い、要素数を宣言する方法なども試したのですが結果はうまくいかずでした。(※修正しました)
どのように記述すればうまくいくのか、どなたかご教授ください。
よろしくお願いいたします。
<環境>
python:3.7.4
Windows WSL ubunthu
回答2件
あなたの回答
tips
プレビュー