我想问一个关于嵌套循环的问题。我有一个像这样的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]]
无需导入任何模块,只需稍微更改您尝试的代码!仅此而已!简单易用!它可能很长,但写起来需要一点时间!