首页 > 解决方案 > 遍历不同索引位置的元素

问题描述

我正在尝试制作一个从整数输入打印网格的程序。

def grids(units):
    natural_number = int(input())
    # define size
    x = y = units

    # create empty rows
    grid = []

    # for each row defined by Y, append a list containing X occurrences of "."
    for row in range(y):
        grid.append(list("." * x))

    # fills the first row with natural_number
    for elements in range(units):
        grid[0][elements] = natural_number

    # fills the first column of each row with natural_number
    for elements in range(units):
        grid[elements][0] = natural_number

    return grid

    >>> grids(3)
    >? 5
    [[5, 5, 5], [5, '.', '.'], [5, '.', '.']]

对于 grid[1][1]、grid[1][2]、grid[2][1] 和 grid[2][2] 中的空位置

我的目标是做出以下输出

''''
    grid[1][1] = grid[1][0] + grid[0][1]
    grid[1][2] = grid[1][1] + grid[0][2]
    grid[2][1] = grid[2][0] + grid[1][1]
    grid[2][2] = grid[2][1] + grid[1][2]

    grid[i][j] = grid[i][j-1] + grid[i-1][j]
''''

为了填补这些职位,我想出了以下代码。

但是,代码返回错误:int object is not iterable。

该代码似乎也提出了不会为 grid[1][2] 或 grid[2][1] 迭代的问题

for i, j in range(1, units):
    grid[i][j] = grid[i][j - 1] + grid[i - 1][j]
return grid

我可以采取什么措施来修正这个问题?

标签: pythonpython-3.xpython-2.7

解决方案


如果你拿

for i, j in range(1,3):

并将其替换为

for i in range(1, 3):
    for j in range(1, 3):

我认为这将解决您的问题


推荐阅读