我有一个代码,它应该将主列表中的每个项目打印在一个新行上,并带有相应的行号。在以下代码中,它可以正常工作:
my_list = [["a", "b", "c"], ["d", "e", "f"], ["g", "h", "i"]]
for item in my_list:
print(my_list.index(item)+1, item)
然而,当我试图将它植入一个“tic-tac-toe”游戏中时,我却使它无法工作。以下是益生菌代码:
def showGrid(y, x, "X"):
board[y][x] = "X"
print(" x x x")
for row in board:
print(board.index(row)+1, sub("[,']", "", str(row)[1:-1]))
上面代码的输出与第一个示例不同,而是根据y
和x
值的不同给出随机输出。例如,如果y
和x
都设置为1,则输出为:
x x x
1 X - -
2 - - -
2 - - -
当x
和y
都设置为2时,输出为:
x x x
1 - - -
2 - X -
1 - - -
我想要的是13号下降
如果有一个页面涵盖了这一点,请链接它。如果需要更多的代码,请这样说。否则,请提前感谢。:)
为此,您不想使用
index
方法,原因有二:(1)继续搜索当前列表索引效率低下,(2)如果列表中存在重复项,它将始终返回第一个匹配元素的索引,这正是您看到的问题的原因请尝试以下方法:
其工作方式是
enumerate
为每个列表元素生成一个元组。元组的第一个值是列表索引,第二个值是列表元素board.index(row)
返回找到row
的第一个索引。在本例中,第一个索引是0
,因为它包含- - -
。通过在一个范围内循环,可以避免使用list.index
函数,例如:相关问题 更多 >
编程相关推荐