python在列表中保存一个位置以与另一个位置进行比较

python在列表中保存一个位置以与另一个位置进行比较,python,list,Python,List,我试图编写一个代码,将列表元素的位置添加到新列表中。当我稍后尝试从另一个对象向原始列表添加新元素时,该对象的位置将与我保存上一个元素的列表进行比较,以确保它不会被替换 我将粘贴与我的问题相关的代码部分,如下所示: class gamefield: def __init__(self): self.table= [ [ "0" for i in range(10) ] for j in range(10) ] class snake: def __init__(self,sign):

我试图编写一个代码,将列表元素的位置添加到新列表中。当我稍后尝试从另一个对象向原始列表添加新元素时,该对象的位置将与我保存上一个元素的列表进行比较,以确保它不会被替换

我将粘贴与我的问题相关的代码部分,如下所示:

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(符号)) ValueError:“+”不在列表中


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

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

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

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

哦,我明白了!谢谢!如果我将元组添加到正文列表中,它会保存为(x,y)吗在列表的每个元素中?否则,它只会添加x和y的值,这不是像x成为元素0和y元素1吗?@user1832337,是的,如果分别添加x和y,元素0将是x,元素1将是y。使用元组将在列表的一个元素中保存坐标对。太完美了!再次感谢,我看看现在能不能让它工作!