迭代列表中的列表

时间:2014-08-01 21:56:24

标签: python

我正在尝试在我的2D数组中创建一个“线”,但由于某种原因它无法正常工作。我没有得到任何错误,但由于某种原因,它没有做我想要的。

以下是代码:

#Create arrays
t = []
for x in range(10):
    t.append([])
    for y in range(10):
        t[x].append("x")

#Create line
for x in t[7]:
    x = "_"

#Print grid
for x in t:
    o = ""
    for y in x:
        o += str(y) + " "
    print(o)

输出应该如下所示:

x x x x x x x x x x
x x x x x x x x x x
x x x x x x x x x x
x x x x x x x x x x
x x x x x x x x x x
x x x x x x x x x x
x x x x x x x x x x
_ _ _ _ _ _ _ _ _ _
x x x x x x x x x x
x x x x x x x x x x

但看起来像这样:

x x x x x x x x x x
x x x x x x x x x x
x x x x x x x x x x
x x x x x x x x x x
x x x x x x x x x x
x x x x x x x x x x
x x x x x x x x x x
x x x x x x x x x x
x x x x x x x x x x
x x x x x x x x x x

我确定我犯了一些愚蠢的错误,所以任何帮助都会受到赞赏。谢谢!

1 个答案:

答案 0 :(得分:2)

问题在于:

#Create line
for x in t[7]:
    x = "_"

在此for循环中,x只是一个局部变量。如果您更改x,则对列表t[7]无效。你需要这样做:

#Create line
for i, x in enumerate(t[7]):
    t[7][i] = "_"