2

ヘルプ!1 つのことが機能するようになると、別の機能が機能しなくなります。繰り返しますが、経験者の目には簡単だと思いますが、苦労しています!これは、リストとそのリストのデータを生成するコードです。

#Frame Creation


allframes = []

for n in range (0, (workingframes*archnodes*3)):
    allframes.append(n)

frames = allframes

print frames



#Frame Population

for f in range (0, workingframes):

    if f<=(workingframes/2):

        for x in range (0, (archnodes)):
            frames[((archnodes*3)+f)].insert(((archnodes*3)+f), (archstartred[x]))
            frames[((archnodes*3)+f+workingframes)].insert(((archnodes*3)+f+workingframes),(archstartgrn[x]))
            frames[((archnodes*3)+f+workingframes*2)].insert(((archnodes*3)+f+workingframes*2),(archstartblu[x]))

        for y in range (0, nodesperframe):
            archstartred.pop()
            archstartgrn.pop()
            archstartblu.pop()
            archstartred.insert(0, backred)
            archstartgrn.insert(0, backgrn)
            archstartblu.insert(0, backblu)

    else:
        for y in range (0, nodesperframe):
            archstartred.pop(0)
            archstartgrn.pop(0)
            archstartblu.pop(0)
            archstartred.append(backred)
            archstartgrn.append(backgrn)
            archstartblu.append(backblu)

        for x in range (0, (archnodes)):
            frames[(archnodes*3)+f].insert((archnodes*3), (archstartred[x]))
            frames[(archnodes*3)+f+workingframes].insert(((archnodes*3)+1),(archstartgrn[x]))
            frames[(archnodes*3)+f+workingframes*2].insert(((archnodes*3)+2),(archstartblu[x]))

私はこの素敵なエラーを受け取り続けます:

AttributeError: 'int' object has no attribute 'insert'

リストが取り込まれた後、リストを配列に変換して、必要な方法で操作できるようにする予定です。これを行うもっと簡単な方法があると確信していますが、私は知りませんし、Python は初めてです!

4

2 に答える 2

5

これらの式(3 つのバージョンすべて) は整数として評価され、エラーの原因であるメソッドframes[((archnodes*3)+f)]を呼び出そうとしています。insert()

fは、囲んでいる for ループで作成された整数でありarchnodes、最初の for ループで使用される方法も、それらが数値であることを意味します。最初のループで作成された番号のリストであるため、番号のリストにインデックスを付けてから、リスト内の特定の番号でメソッドframesを呼び出そうとしています。insert()エラーメッセージが示すように、

'int' object has no attribute 'insert'

この型にはメソッドintがありませんinsert

上記のコメントを更新します。

リストにアイテムを追加/削除/挿入できますが、整数に追加/削除/挿入することはできません。リストに関するこの簡単なチュートリアル/リファレンスを参照してください。たとえば、アイテムをリストに挿入するには、次のメソッド/アプローチを使用します。

list.insert(index, obj)

だからあなたの場合

frames.insert(index, .. )

いいえ

frames[index].insert(..)

これが役立つことを願っています。

于 2012-07-25T01:44:23.723 に答える
0

リストが必要な場合は、まず次のようにリスト オブジェクトをセットアップする必要があります。

l = []
l.append(element)

を行う前にリスト操作を行うと、l = []説明した問題が発生します。

于 2012-07-25T01:49:16.787 に答える