ホームページ  >  に質問  >  本文

python - a=[1,2,3,4,5],b=a和b=a[:],有区别么?

ringa_leeringa_lee2742日前974

全員に返信(3)返信します

  • 迷茫

    迷茫2017-04-18 09:25:15

    あなたはそれを呼びます

    リーリー

    違いがわかります:

    • 前者は参照を渡します

    • 後者はコピーです

    返事
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:25:15

    • b=a は、b が参照するオブジェクト a

    • に参照させます。
    • a[:] は a のコピーを作成するため、b=a[:]b にこのコピーを参照させます。つまり、ba は別のオブジェクトを参照しますが、これらは2 つのオブジェクトは等しい (同じではないが同等)

    これが、表面的には両者に違いがないように見える理由ですが、前者の場合、b または a を変更すると、両方とも同じオブジェクトを参照しているため影響を受けます。後者は異なるオブジェクトを参照するため、相互に影響しません。 @hsfzxjy の例はこれを指摘するものであり、実験を行うことで違いを知ることができます。


    私が回答した質問: Python-QA

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 09:25:15

    Pythonにはオブジェクトのアドレスを取得できるidという関数があります。これを出力してみると分かります。 Direct = は元のオブジェクトを参照する参照割り当てであり、[:] は新しいオブジェクト

    を生成する再派生です。 リーリー

    返事
    0
  • キャンセル返事