Tutorial Python untuk bukan pengatur cara/Tambahan tentang List: Perbezaan antara semakan
Kandungan dihapus Kandungan ditambah
k kemas |
kembang terjemahan |
||
Baris 108:
Fungsi <code>dapatkan_tebal()</code> mengambil senarai yang dipisahkan kepada perkataan dan token. Token yang dicarinya ialah <nowiki><B></nowiki> yang memulakan teks tebal dan <nowiki></B></nowiki> yang mengakhiri teks tebal. Fungsi <code>dapatkan_tebal()</code> menggelintar dan mencari token-token permulaan dan pengakhir.
Ciri berikut senarai ialah ciri bagi menalin sesebuah senarai. Jika anda mencuba sesuatu yang mudah seperti ini:
>>> '''a = [1, 2, 3]'''
Baris 120:
[1, 10, 3]
Keputusan ini mungkin memeranjatkan kerana pengubahsuaian pada <code>b</code> menghasilkan perubahan pada <code>a</code> sekali. Apa yang terjadi ialah kenyataan <code>b = a</code> membuat <code>b</code> sebagai ''rujukan'' bagi <code>a</code>.
Ini bermakna <code>b</code> boleh difikirkan sebagai satu lagi nama buat <code>a</code>. Justeru, apa jua perubahan yang dilakukan pada <code>b</code> juga mengubah <code>a</code>. Walau bagaimanapun, ada juga umpukan yang tidak membuat dua nama bagi satu senarai:
>>> '''a = [1, 2, 3]'''
Baris 139 ⟶ 136:
[1, 2, 3, 1, 2, 3]
Dalam kes ini <code>b</code> bukan rujukan kepada <code>a</code> kerana ungkapan <code>a * 2</code> mewujudkan sebuah senarai baru. Kemudian kenyataan <code>b = a * 2</code> memberi <code>b</code> sebuah rujukan kepada <code>a * 2</code> dan tidak kepada <code>a</code>. Semua operasi umpukan mewujudkan rujukan. Apabila anda menggunakan senarai sebagai sebuah argumen kepada sebuah fungsi, anda juga mewujudkan sebuah rujukan. Dalam kebanyakan masa anda tidak perlu risau tentang hakikat yang anda memcipta rujukan dan bukan salinan. Namun, apabila anda perlu membuat perubahan pada satu senarai tanpa mengubah nama lain senarai tersebut, anda harus memastikan yang anda telah membuat sebuah salinan.
Terdapat beberapa cara untuk membuat salinan sebuah senarai. Yang paling mudah ialah penghirisan oleh sebab operasi ini sentiasa akan membuat senarai baharu mahupun bahagian yang diris itu hanya sebahagian daripada sebuah senarai:
>>> '''a = [1, 2, 3]'''
Baris 161 ⟶ 148:
[1, 10, 3]
Membuat hirisan <code>[:]</code> akan mencipta sebuah salinan baru sesebuah senarai. Walau bagaimanpun, ia hanya akan membuat salinan senarai luaran. Mana-mana subsenarai measih kekal menjadi rujukan kepada subsenarai dalam senarai asal. Jadi, jika sesebuah senarai itu mengandungi sebuah lagi senarai, senarai dalaman ini juga perlu disalin sekali. Anda boleh melakukan itu secara insani, akan tetapi Python mempunyai sebuah modul yang dapat melakukannya. Anda boleh menggunakan fungsi <code>deepcopy</code> daripada modul <code>copy</code>:
>>> '''import copy'''
|