使用循环在Python中创建矩阵

1 投票
2 回答
1444 浏览
提问于 2025-04-18 11:46

我正在尝试用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]]

撰写回答