如何将嵌套的for循环转换为二维列表或数组



我想问一个关于嵌套循环的问题。我有一个像这样的for循环:

for x in range(1,5):
for y in range(1,5):
z =10
print(x,y,z)

我试过这个:

list = []
for x in range(1,5):
nested = []
for y in range(1,5):
z = 10
nested.append(y)
list.append(nested)

但这并不能给我想要的输出

我想把嵌套的for循环变成一个2D列表(数组(,如下所示:

输出:

[[1,1,10],[1,2,10],[1,3,10],[1,4,10],[2,1,10],[2,2,10].....,[4,4,10]
z = 10
result = []
for i in range(1,5):
for j in range(1,5):
result.append([i,j,z])

或者作为一个列表理解

result = [[i,j,10] for i in range(1,5) for j in range(1,5)]

或带有itertools.product:

from itertools import product
result = [[i, j, 10] for i, j in product(range(1, 5), range(1, 5))]

好吧,作为你的尝试代码:

list = []
for x in range(1,5):
nested = []
for y in range(1,5):
z = 10
nested.append(y)
list.append(nested)

我们可以简单地更改它以获得您想要的粒子输出,我想这是哪一个?:

[[1, 1, 10], [1, 2, 10], [1, 3, 10], [1, 4, 10], [2, 1, 10], [2, 2, 10], [2, 3, 10], [2, 4, 10], [3, 1, 10], [3, 2, 10], [3, 3, 10], [3, 4, 10], [4, 1, 10], [4, 2, 10], [4, 3, 10], [4, 4, 10]]

为了让这个输出,只需将您的代码更改为:

list1 = []
for x in range(1,5):
for y in range(1,5):
z =10
nested = [x, y, z]
list1.append(nested)
print(list1)

输出:

[[1, 1, 10], [1, 2, 10], [1, 3, 10], [1, 4, 10], [2, 1, 10], [2, 2, 10], [2, 3, 10], [2, 4, 10], [3, 1, 10], [3, 2, 10], [3, 3, 10], [3, 4, 10], [4, 1, 10], [4, 2, 10], [4, 3, 10], [4, 4, 10]]

无需导入任何模块,只需稍微更改您尝试的代码!仅此而已!简单易用!它可能很长,但写起来需要一点时间!

最新更新