使用列表理解中的先前值有条件地填充数据[重复]

问题描述 投票:0回答:1

我使用以下代码生成二维列表。

grid = [[ 1 if i == 0 or j == 0 else 0  for i in range(size) ] for j in range(size)]

生成

[1, 1, 1]
[1, 0, 0] 
[1, 0, 0]

是否可以使用这些值来获取列表 comp 中的下一个值,例如

grid[1][1] = grid[0][1] + grid[1][0]

所以它看起来像

[1, 1, 1]
[1, 2, 3] 
[1, 3, 6]

我知道我可以迭代它并获得结果,但是列表理解可以吗?

python list-comprehension
1个回答
0
投票

看起来这会更容易以迭代的方式完成:

size = 5

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

print grid

结果(我手动添加的间距):

[
    [1, 1,  1,  1,  1], 
    [1, 2,  3,  4,  5], 
    [1, 3,  6, 10, 15], 
    [1, 4, 10, 20, 35], 
    [1, 5, 15, 35, 70]
]
© www.soinside.com 2019 - 2024. All rights reserved.