python - a=[1,2,3,4,5],b=a和b=a[:],有区别么?
ringa_lee
ringa_lee 2017-04-18 09:23:15
0
3
964
ringa_lee
ringa_lee

ringa_lee

membalas semua(3)
迷茫

Anda memanggilnya

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

Anda boleh lihat perbezaannya:

  • Yang pertama lulus rujukan

  • Yang terakhir ialah salinan

大家讲道理
  • 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

Ty80

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)
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!