4
def create_board():
    b = [[['',''] for i in range(8)] for j in range(8)]
    return b
game_board = create_board()


for i in game_board[0]:
    for idx, val in enumerate(i[1::2]):
        idx[0] = 0
        idx[1] = 0
print game_board

このスクリプトでは、リスト game_board 内にある最初のリストを反復処理する必要があります。2 番目の要素から始めて、他のすべての要素のリストの値を変更する必要があります。ただし、これを実行すると、エラーが発生します

idx[0] = 0
TypeError: 'int' object does not support item assignment

IDLE が私が str に変数を割り当てることについて不平を言っているのであれば理解できます (これは、インデックスではなく値を反復処理する際の問題です) が、整数がないことを考えると、なぜこの問題が発生するのかわかりません。

4

2 に答える 2

5

idx のような単なる整数0であり、そのようなものはありません0[0]

リストのアイテムである val を使用します。

実際には、他の問題を抱えているようです...

修繕

for row in game_board:
    for item in row:
        item[0] = 0
        item[1] = 0
于 2013-05-18T02:46:36.050 に答える
1

enumerate() 関数は (integer, object) であるタプルを返します - enumerate の python ドキュメントを参照してください。

できない整数にインデックスを付けようとしています。

于 2013-05-18T02:54:25.463 に答える