Tutorial Python untuk bukan pengatur cara/Tambahan tentang List: Perbezaan antara semakan
Kandungan dihapus Kandungan ditambah
kembang terjemahan |
bab selesai |
||
Baris 163:
[[1, 2, 3], [4, 12, 6]]
Perhatikan, pertama sekali, bahawa <code>a</code> ialah senarai yang mengandungi senarai. Kemudian perhatikan apabila <code>b[0][1] = 10</code> dilaksanakn, kedua-dua <code>a</code> dan <code>b</code> diubah, akan tetapi <code>c</code> tidak berubah. Ini berlaku kerana tatasusunan dalaman masih kekal sebagai rujukan apabila operator hirisan digunakan. Walau bagaimanapun dengan <code>deepcopy</code>, <code>c</code> disalin sepenuhnya.
Jadi, perlukah saya risau tentang rujukan setiap kali saya menggunakan fungsi atau <code>=</code>? Berita baiknya ialah anda hanya perlu risaukan tentang rujukan apabila menggunakan kamus dan senarai. Nombor dan rentetan mencipta rujukan apabila diumpukkan akan tetapi setiap operasi terhadap nombor dan rentetan yang mengubah mereka akan mencipta salinan baru dan dengan itu anda akan tidak boleh menukarnya tanpa disangka-sangka. Anda perlu berfikir tentang rujukan jika mengubah sebuah senarai ataupun sebuah kamus.
Pada saat ini anad mungkin berfikir mengapa rujukan digunakan. Alasan asanya ialah kelajuan. Membuat rujukan kepada senarai yang mengandungi seribu unsur lebih pantas daripada menyalin kesemua unsur. Alasan yang lagi satu ialah ia membolehkan anda untuk membuat fungsi yang dapat mengubah senarai ataupun kamus yang digunakan sebagai input. Hanya, anda perlu ingat tentang rujukan jika anda berhadapan dengan masalah aneh yang data diubah bila sepatutnya ia tidak berubah.
<!-- On Sun, Sep 09, 2001 at 02:46:06PM +0100, Hamish Lawson wrote: -->
|