我尝试编写一段代码,将列表元素的位置添加到新列表中。当我稍后尝试从不同的对象向原始列表添加新元素时,该对象的位置将与我保存前一个元素的列表进行比较,以确保它不会被替换。
我将粘贴与我的问题相关的代码部分,如下所示:
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 中?
最佳答案
它不在列表table
中,而是在列表table[x]
中。您的表格是一个列表列表,如下所示:
[
["0", ... ,"0"],
["0", ... ,"0"],
..
..
["0", ... ,"0"]
]
您可能应该将元组 (x,y)
添加到正文列表
关于Python;保存列表中的位置以将其与另一个位置进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13658468/