Python:迭代子列表

时间:2015-05-15 05:41:58

标签: python for-loop nested-loops nested-lists

我有一个项目,我正在尝试编辑嵌套列表的部分内容。 说我从这个列表开始:

[[0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0]]

我想迭代这个列表的一部分,这样我就得到一个像中心一样的输出,就像这样。

[[0, 0, 0, 0, 0],
 [0, 1, 1, 1, 0],
 [0, 1, 1, 1, 0],
 [0, 1, 1, 1, 0],
 [0, 0, 0, 0, 0]]

我尝试使用for循环迭代列表和嵌套for循环来遍历子列表。但是,这没有用。我得到的是这个清单:

[[0, 1, 1, 1, 0],
 [0, 1, 1, 1, 0],
 [0, 1, 1, 1, 0],
 [0, 1, 1, 1, 0],
 [0, 1, 1, 1, 0]]

这是我的代码:

list = [[0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]]

for i in range(1,4):
    for j in range(1,4):
        list[i][j] = 1

为什么这个代码不起作用?我搜索了一两天,但没有找到答案。提前感谢任何花时间回答或评论的人。

1 个答案:

答案 0 :(得分:0)

您发布的代码工作正常:

>>> list = [[0, 0, 0, 0, 0],
...         [0, 0, 0, 0, 0],
...         [0, 0, 0, 0, 0],
...         [0, 0, 0, 0, 0],
...         [0, 0, 0, 0, 0]]
>>> 
>>> for i in range(1,4):
...     for j in range(1,4):
...         list[i][j] = 1
... 
>>> pprint(list)
[[0, 0, 0, 0, 0],
 [0, 1, 1, 1, 0],
 [0, 1, 1, 1, 0],
 [0, 1, 1, 1, 0],
 [0, 0, 0, 0, 0]]

检查您的代码是否与您在此处发布的内容完全相同。