使用循环在Python中创建矩阵
我正在尝试用Python代码创建一个可以自动填充的矩阵(字典?索引?我也不知道该怎么称呼它)。
这里有我尝试的两种方法:
currentstair = [i for i in range(FLOOR - 2)]
for i in STAIRCASE:
staircasenetwork.append([currentstair])
for j in range (STAIRCASE):
for i in range (FLOOR - 2):
staircasenetwork.append([j]i)
我希望这个列表一开始是空的[],最后变成[[1,2,3],[1,2,3]]。
2 个回答
0
我不太明白你的问题,因为你提到的变量和你想在列表里放多少个列表都不太清楚。不过你可以试试这个:
currentstair = []
for i in range(STAIRCASE):
currentstair.append([])
for j in range(FLOOR - 2):
currentstair[-1].append(j+1)
假设你有:
STAIRCASE = 2
FLOOR = 5
那么最后得到的列表会是 [[1,2,3],[1,2,3]]
简单解释一下我的代码:一开始,currentstair 被设置为空列表 []。然后,在第一次循环后,它会在对应于STAIRCASE变量的列表里添加另一个空列表(因为你想在自己的列表里放2个列表,所以这个值是2)。接下来,另一个循环会把currentstair[-1](也就是最近添加的那个列表)添加上一个数字 j+1,因为FLOOR - 2 等于 5 - 2 = 3。所以,j+1 的值会是 1, 2, 3。这样,经过两次循环后,我们就得到了 [[1,2,3],[1,2,3]]!
0
你走在正确的道路上。你想要创建一个包含多个列表的列表。理解这个过程最简单的方法就是使用一个简单的 for
循环来生成每一个子列表。你可以使用 range
函数来轻松地创建这些子列表:
>>> staircasenetwork = []
>>> for i in range(2):
... staircasenetwork.append( range(1, 4) )
...
>>> staircasenetwork
[[1, 2, 3], [1, 2, 3]]