如何在python中遍历二维列表

新手上路,请多包涵

我有以下列表:

 grid = [[2, 6, 8, 6, 9], [2, 5, 5, 5, 0], [1, 3, 8, 8, 7], [3, 2, 0, 6, 9], [2, 1, 4,5,8], [5, 6, 7, 4, 7]]

我使用 fowling 循环遍历每个元素 ->

 for i in xrange(len(grid[i])):
    for j in xrange(len(grid[j])):
        print grid[i][j]
    print "\n"

但它没有显示最后一行,即 [5,6,7,4,7]

那么,在 python 中遍历 2D List 的正确方法是什么?

原文由 DBB 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

遍历二维列表的正确方法是

for row in grid:
    for item in row:
        print item,
    print

Python 中的 for 循环,将在每次迭代中选择每个项目。因此,从 grid 二维列表,在每次迭代中,都会选择一维列表。在内部循环中,一维列表中的单个元素被挑选出来。

如果您使用的是 Python 3.x,请使用 print 作为函数,而不是语句,像这样

for row in grid:
    for item in row:
        print(item, end = " ")
    print()

输出

2 6 8 6 9
2 5 5 5 0
1 3 8 8 7
3 2 0 6 9
2 1 4 5 8
5 6 7 4 7

但是,以防万一,如果您想更改特定索引处的元素,那么您可以这样做

for row_index, row in enumerate(grid):
    for col_index, item in enumerate(row):
        gird[row_index][col_index] = 1     # Whatever needs to be assigned.

原文由 thefourtheye 发布,翻译遵循 CC BY-SA 3.0 许可协议

请尝试跟随。你可以做必要的操作而不是“print grid[i][j]”

 for i in range(len(grid)):
    for j in range(len(grid[i])):
        print grid[i][j]
    print '---'

原文由 Soundar 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题