row=5
col=5
[[x]*col for x in [b for b in range(row)]]
上面的代码将为您提供一个5x5的二维数组。
[[0, 0, 0, 0, 0],
[1, 1, 1, 1, 1],
[2, 2, 2, 2, 2],
[3, 3, 3, 3, 3],
[4, 4, 4, 4, 4]]
这是使用嵌套列表推导式。
具体如下:
[[x]*col for x in [b for b in range(row)]]
[x]*col --> 最终表达式的计算结果
for x in --> x 是迭代器提供的值
[b for b in range(row)]] --> 迭代器。
[b for b in range(row)]] 将计算为 [0,1,2,3,4],因为 row=5
现在它简化为
[[x]*col for x in [0,1,2,3,4]]
这将被解释为
[[0]*5 for x in [0,1,2,3,4]] --> 在第一次迭代中,x=0
[[1]*5 for x in [0,1,2,3,4]] --> 在第二次迭代中,x=1
[[2]*5 for x in [0,1,2,3,4]] --> 在第三次迭代中,x=2
[[3]*5 for x in [0,1,2,3,4]] --> 在第四次迭代中,x=3
[[4]*5 for x in [0,1,2,3,4]] --> 在第五次迭代中,x=4