BFS を使用してグラフ内のいくつかのパスを計算し、各ノードへの部分パスを計算しています。これは、実際の問題の概要にすぎません。
問題は、2 つのノードがあり、その間にリンクがあるとしましょう。それらはすべて 3 つのパラメーターを持ち、3 つの値のみを持つリストとしてモデル化されています。
ノード A までのパスの内容は listA にあり、リンク パラメータは listC に格納され、それらの両方を追加した結果は、ノード B の一部である listB に入ります。
たとえば、listA = [0,0,1] および listC = [1,1,1] です。次のように、リストにペアワイズ加算を行っています
listB[0] = listA[0] + listC[0]
listB[1] = listA[1] + listC[1]
listB[2] = listA[2] + listC[2]
したがって、操作の最後には listB = [1,1,2] となるはずです。私が知る限り、 listA はとにかく変更されるべきではありません。しかし、この操作を実行すると、listA がどの操作の LHS でもなくても、listA と listB は同じ値になります。ここで見逃している Python-y の概念はありますか? リストは元の形では不変だと思っていました。