を変更せずに別の変数を使用して定義されたPythonの変数は、以下のコードを見てください:両方
import numpy as np
list1 = [1,2,3]
list2 = list1
list2.append(4)
print list2
print list1
結果は[1,2,3,4]両方のプリントのために。私はlist2に[1,2,3,4]を、list2には '4'を追加しただけでlist1に[1,2,3]を持つことを期待していました。代入list2 = list1がlist2の命令をlist1に転送したようです。
まず、変数Aを変数Bと同じにする方法があるのは理解したいと思いますが、Bの命令(例:再割り当てなど) Bを修正しますが、Aは修正しませんか?
もちろん、私は
list1 = [1,2,3]
list2 = [1,2,3]
list2.append(4)
を行うと、私が欲しいものを得ることができます。しかし、list1が、(numpy)100x100アレイと言うとどうでしょうか?それから、リスト1を手動で書き換える以外の方法で別の変数にコピーする方法があります。
私は経験豊富なプログラマーではなく、Pythonの初心者です。私はこの質問を公式に公式化しようとしましたが、このサイトで直接答えたものは見つかりませんでした。私が逃した可能性のあるものに私をリダイレクトし、前もって謝罪を受け入れてください。ありがとう!
普通のPythonのリストを表示していますが、numpyのことを話すことに注意してください。異なる獣:https://stackoverflow.com/questions/3059395/numpy-array-assignment-problem –
あなた自身の質問に答えました。 Pythonでは、代入*は決してコピーしません。コピーが必要な場合は、明示的にコピー*を作成する必要があります。 'numpy'配列は、使用できる' .copy'メソッドを提供します。 Ned Batchelderの[Pythonの名前と値についての事実と誤解](https://nedbatchelder.com/text/names.html)をチェックしてください。 –
ありがとう、非常に有用な情報! – orion2112