如何迭代列表并正确获取它们的位置(如矩阵)

2024-09-29 20:20:58 发布

您现在位置:Python中文网/ 问答频道 /正文

给出如下列表:

grid = [['R', 'S', 'S', 'I', 'Q', 'A', 'S', 'T', 'K'],
        ['Q', 'O', 'E', 'A', 'I', 'E', 'S', 'T', 'A'],
        ['D', 'B', 'M', 'X', 'F', 'E', 'O', 'K', 'I']]

我可以访问第一行第三列,如下所示:

print(grid[1][3])

但我实际上喜欢做的是迭代网格中的值并获得它们的rowth和columnth值。 我用我的知识尝试过,下面是我的代码:

word = "A"
items = []
for rows in grid:
    for column in rows:
        if word == column:
            items.append([grid.index(match),  match.index(string)])

但是当我打印它时:[[0,5],[1,3],[1,3]]。 我没有把[1,8]排在第三位,而是得到了矩阵重复之前的值。 我试了很多次,但都失败了。请帮帮我

多谢各位


Tags: 代码in网格列表forindexmatchitems
1条回答
网友
1楼 · 发布于 2024-09-29 20:20:58

您可以使用enumerate跟踪当前正在查看的元素的x和y坐标,而不必调用index(这就是为什么要两次查找同一元素)

for x, rows in enumerate(grid):
    for y, column in enumerate(rows):
        if word == column:
            items.append([x, y])

这将打印:[[0, 5], [1, 3], [1, 8]]

相关问题 更多 >

    热门问题