我是
Python的新手,试图学习基础知识.对列表有疑问.
有一个清单:
L = [[1,2,3],[4,5,6],[3,4,6]]
输出应该是:
[[2,4,6],[8,10,12],[6,8,12]]
适用于我的代码如下
for x in range(len(L)):
for y in range(len(L[x])):
L[x][y] = L[x][y] + L[x][y]
print L
它给出了输出[[2,4,6],[8,10,12],[6,8,12]].
现在我希望使用不同的代码输出相同的输出:
for x in L:
a = L.index(x)
for y in L[a]:
b = L[a].index(y)
L[a][b] = L[a][b] + L[a][b]
print L
使用上面的代码,获得的输出是:
[[4,2,6],[8,10,12],[12,8,6]]
我试着调试上面的输出.
为了打印a和b,我在“L [a] [b] = L [a] [b] L [a] [b]”行上面打印了一个打印声明.我很惊讶地看到a和b的值是:
0,0
0,0
0,2
1,0
1,1
1,2
2,0
2,1
2,0
再次,如果我注释掉“L [a] [b] = L [a] [b] L [a] [b]”这一行,则a和b的值如预期:
0,0
0,1
0,2
1,0
1,1
1,2
2,0
2,1
2,2
我怀疑这可能是由于python中变量的范围而发生的,并试图研究一些关于python中的作用域的东西.但是,对于范围界定或上述问题,我没有得到适当的答案.