これは私の最初の投稿です。ここ数年のうちに、ただの隠れ家になってから、皆さんにこんにちはと言うのが私の喜びです!Pythonで2つの同一のリストを作成しました - 私の関数は私が意図しているものを更新していません
私は現在、自由な時間(特にPython)でコードを学習しています。私の2番目のプロジェクトを開発している間、私は意図したとおりに動作することを拒否する機能についてしまいました。私がなぜそれを見つけるのを助ける文書を見つけることができないので、私はここに赴くことに決めました。コードは次のとおりです。
def GridConstructor(InputGrid, RedPosition, BluePosition, SquareSize, StartingPositionA, StartingPositionB):
CurrentPositionA = StartingPositionA
CurrentPositionB = StartingPositionB
x = 1
for Line in range(19):
y = 1
for Row in range(18):
if [y, x] == BluePosition:
InputGrid[str(x) + ", " + str(y)] = [CurrentPositionA, CurrentPositionB], 1
print CurrentPositionA, CurrentPositionB
elif [y, x] == RedPosition:
InputGrid[str(x) + ", " + str(y)] = [CurrentPositionA, CurrentPositionB], 2
print CurrentPositionA, CurrentPositionB
else:
InputGrid[str(x) + ", " + str(y)] = [CurrentPositionA, CurrentPositionB], 0
print CurrentPositionA, CurrentPositionB
y += 1
CurrentPositionA[1] += SquareSize
CurrentPositionB[1] += SquareSize
x += 1
CurrentPositionA[0] += SquareSize
print CurrentPositionA[0]
CurrentPositionB[0] += SquareSize
print CurrentPositionB[0]
CurrentPositionA[1] = StartingPositionA[1]
print CurrentPositionA[1]
print StartingPositionA[1]
CurrentPositionB[1] = StartingPositionB[1]
print CurrentPositionB[1]
print StartingPositionB[1]
(「印刷」は無視してください。デバッグ用に用意されています)
ご覧のとおり、グリッドパターンで[x、y]座標を格納している辞書を作成するのは非常に単純な関数です。デバッグで判断すると、問題は、 'SquareSize'を 'CurrentPositionA'に、CurrentPositionBを2番目の 'for'ループに追加した時点で、 'SquareSize'の値が何らかの理由で 'StartingPositionA'に追加され、および 'StartingPositionB'は、現在の位置トラッカーの両方のy値が最初のforループの各繰り返しの最後に元の値にリセットされないことを意味します。なぜ機能がそれをやっているのか全く分かりませんし、私を助けることができるドキュメンテーションを見つけることができません。私は実際には非常にばかばかしい、基本的なエラーであると確信していますが、誰かが私にこれを手伝うことができれば非常に感謝しています。
乾杯!