1

3D 配列に挿入しようとすると、「TypeError: 'int' object is not subscriptable」という型エラーが発生します。カウンターが正しく機能していることを確認しました (z カウンターの場合、x=-1 はここで除外したより大きなループの一部です)。文字列 temp を取り、それを配列 temp2 の [0][0][0] に配置し、カウンターを反復してリストに追加し続けたいのですが、明らかにこれを行う方法がわかりません。どうにかして配列 temp2 を初期化する必要がありますか? また、その大きさがわからない場合はどうすればよいですか? 助けてくれてありがとう。

プログラムの先頭で初期化:

temp2=[]
t=0
temp=""

これは例外を発生させるコードです

z=-1
for subtree in result.subtrees(filter=lambda t: t.node == 'Proper'):
    z=z+1
    y=0

    # this iterates through the actual subtree
    for p in subtree:
        temp = str(p[0])

        temp2.insert([t][z][y],temp)  #This line raises the exception
        y=y+1

#increments the first dimension of the array and resets the temp list      
t=t+1
temp = ""
4

2 に答える 2

0

Python で 3D 配列が本当に必要な場合は、既に 3D 配列があるライブラリを探すか (numpy かもしれません)、コンストラクターで次元が渡されたときに正しい「形状」を持つ配列を作成するクラスを作成することをお勧めします。 "。

それがないと、不規則な「配列」になってしまう可能性があります。

于 2013-10-12T13:58:24.897 に答える