私が試した:リンクを維持せずにリストをPythonでコピーするには?
A = [1,2,3]
B = A
B[0] = A[0]*3
は与えるべきである:
B == [3,2,3]
True
A == [1,2,3]
True
が、何それは本当にありませんが:
B == [3,2,3]
A == [3,2,3]
は、どのように私はBにリンクされて維持することなく、Bにおけるオーバーをコピーするのですか? ご協力いただきありがとうございます。
私が試した:リンクを維持せずにリストをPythonでコピーするには?
A = [1,2,3]
B = A
B[0] = A[0]*3
は与えるべきである:
B == [3,2,3]
True
A == [1,2,3]
True
が、何それは本当にありませんが:
B == [3,2,3]
A == [3,2,3]
は、どのように私はBにリンクされて維持することなく、Bにおけるオーバーをコピーするのですか? ご協力いただきありがとうございます。
これは、コピーを作成せずにBへの参照のみを指しているためです。実際にコピーを作成するには、次の手順を実行します。
A = [1,2,3]
B = A[:]
これは、参照される変数がない場合に機能します。 [:] `代わりにB 'のあなたがその振る舞いをしたくない場合は、Aを変更した場合、それはB
いいえ、OPはコピーをまったく作成しません。「B」と「A」は**同じ**リストを指します。浅いコピーを作ることでそれを解決することができます。 –
ありがとうございます - 私はそれを変更しました。元のエラーのお詫び –
' B = A変わりません、そして、
以下のようにdeep_copyメソッドを使用します= A'?これにより、浅いコピーが作成されます。 –
することができますB = A.copy()は浅いコピーを返します – bvmcode
これも使用できますB = [x in A in] – Ashish