1

リスト要素の位置を新しいリストに追加するコードを書こうとしました。後で別のオブジェクトから元のリストに新しい要素を追加しようとすると、オブジェクトの配置が前の要素を保存したリストと比較され、置き換えられないことが確認されます。

質問に関連するコードの部分を貼り付けます。次のようになります。

class gamefield:
def __init__(self):

    self.table= [ [ "0" for i in range(10) ] for j in range(10) ]

class snake:
def __init__(self,sign):
    self.sign = sign
    self.x = random.randint(1,9) 
    self.y = random.randint(1,9)    
    self.bodylist = []
    gamefield.table[self.x][self.y] = sign
    self.bodylist.append(gamefield.table.index(sign))

field = gamefield()  

snake1 = snake("+")

しかし、エラーが発生します: "" self.bodylist.append(gamefield.table.index(sign))ValueError:'+' is not in list ""

エラーの原因となるコードを実行する直前にgamefield.tableに追加したので、「+」をリストに含めるべきではありませんか?

4

1 に答える 1

2

それはリストにありません、tableそれはリストにありますtable[x]。あなたのテーブルは次のようなリストのリストです:

[
  ["0", ... ,"0"],
  ["0", ... ,"0"],
  ..
  ..
  ["0", ... ,"0"]
]

タプル(x,y)を本文リストに追加する必要があります

于 2012-12-01T10:31:57.983 に答える