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。使用元组将在列表的一个元素中保存坐标对。太完美了!再次感谢,我看看现在能不能让它工作!