row=5
col=5
[[x]*col for x in [b for b in range(row)]]
上面会给你一个5x5的2D数组
[[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——>被求值的最终表达式
对于——>中的x, 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]]——> with x=0第一次迭代
[[1]*5 for x in[0,1,2,3,4]]——> with x=1第二次迭代
[[2]*5 for x in[0,1,2,3,4]]——> with x=2第三次迭代
[[3]*5 for x in[0,1,2,3,4]]——> with x=3第四次迭代
[[4]*5 for x in[0,1,2,3,4]]——> with x=4第五次迭代