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:'+'不在列表中“”

'+" 不应该在列表中,因为我在执行导致错误的代码之前将它添加到 gamefield.table 中吗?

4

1 回答 1

2

它不在列表中table,它在列表中table[x]。您的表是列表列表,如下所示:

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

您可能应该将元组添加(x,y)到正文列表

于 2012-12-01T10:31:57.983 回答