Python;保存列表中的位置以将其与另一个位置进行比较

标签 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):
    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/

相关文章:

python - Pandas 合并具有相同 UserID 的行

python - 为什么我的排序功能不能正常工作?(Python)

python - 以更 Pythonic 的方式修改这个简单的数组创建函数

python - SqlAlchemy Mapper 不返回干净的 UUID

python - 为什么 Python 给出 ['th' 、 'th' 、 'th' 、 'th' 、 'th' ] 作为 '5 * [' th']' 的结果而不是五个列表?

python - python ctypes 结构的 c_int 成员只是整数?

python - Python List Reverse 的时间复杂度是多少?

c# - 将查找表从数据库加载到 C# 程序中 - 数据结构?

java - 如何根据两个参数对对象列表进行排序以在 Java 中进行比较?

python - 垂直堆叠列表 - 无法迭代它们?