私はPythonを初めて使いこなし、基本を学びます。リストについて疑問を持ってください。リスト内のリスト内の要素を変更する方法
は、リストを持っている:
L = [[1,2,3],[4,5,6],[3,4,6]]
出力は次のようになります。
[[2,4,6],[8,10,12],[6,8,12]]
私の作品のコードをそれが出力[[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
です。得られた出力は上記のコードでは
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]"
行の上にprintステートメントを置きます。私はその後、ライン"L[a][b] = L[a][b] + L[a][b]"
をコメントアウトした場合
0,0
0,0
0,2
1,0
1,1
1,2
2,0
2,1
2,0
再びaとbの値は予想通りです:
0,0
0,1
0,2
1,0
1,1
1,2
2,0
2,1
2,2
が、私はこれかもしれないと疑う私はあるとbの値を見て驚きましたPythonの変数のスコープのために起こっているかもしれませんし、Pythonのスコープに関するいくつかの勉強をしようとしました。しかし、私はスコープや上記の質問に対して適切な答えを得ていませんでした。
答えはあなたのあなたが 'Lを変更したら、インナー' for'ループの第二のループではかなり明白である[0] [0] 'を' 2'にしてから '2'のインデックスを探しますが、コードが不必要に複雑に思えます。元のコードより簡単なものを実現しようとしていますか? – Obsidian