Rumah  >  Soal Jawab  >  teks badan

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

ringa_leeringa_lee2742 hari yang lalu975

membalas semua(3)saya akan balas

  • 迷茫

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

    Anda memanggilnya

    b.append(6)
    print (a, b)

    Anda boleh lihat perbezaannya:

    • Yang pertama lulus rujukan

    • Yang terakhir ialah salinan

    balas
    0
  • 大家讲道理

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

    • b=a akan menjadikan b merujuk kepada objek a

      yang dirujuk oleh
    • a[:] akan mencipta salinan a, jadi b=a[:] akan membenarkan b merujuk kepada salinan ini, iaitu, b dan a kini merujuk kepada objek yang berbeza, tetapi ini dua objek adalah sama (tidak sama tetapi setara)

    Inilah sebabnya pada zahirnya tidak ada perbezaan antara keduanya, tetapi jika ia adalah yang pertama, jika kita menukar b atau a kedua-duanya akan terjejas, kerana merujuk kepada objek yang sama, tetapi yang kedua tidak menjejaskan satu sama lain , kerana kedua-duanya merujuk kepada objek yang berbeza. Contoh @hsfzxjy ialah menunjukkan perkara ini, dan anda boleh mengetahui perbezaannya dengan melakukan eksperimen.


    Soalan yang saya jawab: Python-QA

    balas
    0
  • PHP中文网

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

    Python mempunyai fungsi yang dipanggil id yang boleh mendapatkan alamat objek. Ia akan menjadi jelas jika anda mencetaknya. Direct = ialah tugasan rujukan, merujuk kepada objek asal; manakala [:] ialah terbitan semula, yang akan menjana objek baharu

    a=[1,2,3,4,5]
    b=a
    c=a[:]
    print id(a),id(b),id(c)

    balas
    0
  • Batalbalas