Python でのリストの割り当てを理解する
Python では、リストは可変オブジェクトであり、その内容は変更できることを意味します。リストを別の変数に割り当てる場合、両方の変数は同じ基になるリスト オブジェクトを参照します。これは参照による代入と呼ばれます。
参照渡しの問題
この動作は、ネストされたリストを変更するときに予期しない結果を引き起こす可能性があります。たとえば、「a」の値を変更すると、同じバッキング リスト オブジェクトを共有するため「b」にも影響します:
a = ['help', 'copyright', 'credits', 'license'] b = a b.append('XYZ') print(a) # ['help', 'copyright', 'credits', 'license', 'XYZ']
値によるリストの受け渡し
Python でリストを値で渡すには、元のリストのコピーを作成する必要があります。これは、スライス演算子を使用して行うことができます。
b = a[:]
これにより、「a」と同じ内容を持つ新しいリスト オブジェクトが作成されます。さて、'b' に追加しても 'a' には影響しません:
b.append('XYZ') print(a) # ['help', 'copyright', 'credits', 'license'] print(b) # ['help', 'copyright', 'credits', 'license', 'XYZ']
結論
ネストされたオブジェクトを変更する際の意図しない動作を回避するには、Python でのリスト割り当てを理解することが重要です。リスト。スライス演算子を使用すると、リストを値で渡し、あるリストの変更が他のリストに反映されないようにすることができます。
以上がPython のリスト割り当てはどのように機能するのでしょうか?また、ネストされたリストを変更する際の予期せぬ動作を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。