Cara Menggunakan Fungsi Zip di Python

How Use Zip Function Python



Artikel ini akan merangkumi panduan mengenai fungsi zip yang terdapat di perpustakaan modul standard Python. Kaedah ini membolehkan anda menggabungkan dan memasangkan unsur-unsur pelbagai objek berulang. Anda kemudian boleh menjalankan logik lebih lanjut pada pasangan ini. Dalam banyak kes, menggunakan fungsi zip jauh lebih cekap dan bersih daripada menggunakan banyak, bersarang untuk gelung.

Mengenai Fungsi Zip

Seperti yang dinyatakan sebelumnya, fungsi zip digunakan untuk membuat pasangan dari elemen objek berulang berulang. Pertimbangkan contoh di bawah untuk memahami sintaks asas dan penggunaan fungsi zip:







senarai1= ['ke', 'b', 'c']
senarai2= ['epal', 'bola', 'kucing']
berzip= zip(senarai1,senarai2)
mencetak (senarai(berzip))

Dua pernyataan pertama dalam contoh kod di atas menentukan dua senarai yang mengandungi beberapa elemen. Seterusnya, fungsi zip digunakan dengan meneruskan pemboleh ubah list1 dan list2 sebagai argumen. Ini adalah sintaks utama fungsi zip. Anda hanya perlu menyampaikan senarai atau iterables yang diperintahkan yang sah sebagai hujah yang elemennya ingin anda gabungkan. Terakhir, pernyataan cetak digunakan untuk mendapatkan output dari pemboleh ubah zip. Setelah menjalankan contoh kod yang disebutkan di atas, anda akan mendapat output berikut:



[('a', 'apple'), ('b', 'ball'), ('c', 'cat')]

Perhatikan bahawa fungsi zip mengembalikan objek jenis zip dan bukan senarai. Anda harus mengubahnya menjadi jenis berulang, seperti yang ditunjukkan dalam pernyataan cetak di atas.



Secara ringkas, fungsi zip mengambil elemen indeks yang sama dari dua senarai dan menggabungkannya sebagai pasangan dalam tuple. Jadi elemen ke-0 dari senarai1 digabungkan dengan elemen ke-0 dari senarai2, elemen ke-1 dari senarai1 digabungkan dengan elemen ke-1 dari senarai2 dan seterusnya. Fungsi zip bergerak dari kiri ke kanan dan tuple yang mengandungi elemen berpasangan mempunyai indeks yang sama dengan elemen yang tersimpan di dalamnya.





Menggunakan Zip Ketika Iterables Tidak Mempunyai Bilangan Unsur Yang Sama

Dalam contoh yang dinyatakan di atas, kedua-dua senarai mempunyai bilangan elemen yang sama. Sekiranya anda berurusan dengan beberapa kod di mana kedua-dua senarai tersebut tidak mempunyai bilangan elemen yang sama, fungsi zip akan berhenti pada elemen terakhir senarai yang mempunyai bilangan elemen terendah.

Dalam contoh di bawah, fungsi zip akan berhenti pada elemen c, tanpa mengira list2 mempunyai satu elemen lagi.



senarai1= ['ke', 'b', 'c']
senarai2= ['epal', 'bola', 'kucing', 'anak patung']
berzip= zip(senarai1,senarai2)
mencetak (senarai(berzip))

Setelah menjalankan contoh kod yang disebutkan di atas, anda akan mendapat output berikut:

[('a', 'apple'), ('b', 'ball'), ('c', 'cat')]

Anda boleh Menggunakan Lebih daripada Dua Iterable Semasa Menggunakan Fungsi Zip

Biasanya, fungsi zip digunakan untuk membandingkan dua objek berulang. Walau bagaimanapun, anda boleh meneruskan sebilangan iterables sebagai argumen ke fungsi zip. Prinsip berhenti pada elemen terakhir dari senarai terpendek akan tetap berlaku.

senarai1= ['ke', 'b', 'c']
senarai2= ['epal', 'bola', 'kucing', 'anak patung']
senarai3= ['5', '3']
berzip= zip(senarai1,senarai2,senarai3)
mencetak (senarai(berzip))

Setelah menjalankan contoh kod yang disebutkan di atas, anda akan mendapat hasil berikut:

[('a', 'apple', '5'), ('b', 'ball', '3')]

Membuat Senarai Individu dari Objek Jenis Zip

Sekiranya anda sudah mempunyai objek zip, anda boleh menggunakannya untuk mengisi semula senarai individu yang sebelumnya digunakan ketika fungsi zip pertama kali dipanggil.

senarai1= ['ke', 'b', 'c']
senarai2= ['epal', 'bola', 'kucing', 'anak patung']
senarai3= ['5', '3']
berzip= zip(senarai1,senarai2,senarai3)
l1,l2,l3= zip(* zip)
mencetak (senarai(l1), senarai(l2), senarai(l3))

Setelah menjalankan contoh kod yang disebutkan di atas, anda akan mendapat hasil berikut:

['a', 'b'] ['epal', 'bola'] ['5', '3']

Dalam contoh kod di atas, objek zip dikempiskan menggunakan * operator. Hasil kempis kemudian dimasukkan ke fungsi call to zip lain yang membuat senarai asal. Perhatikan bahawa anda mungkin tidak memasukkan semua elemen ke dalam senarai asal jika senarai panjang yang tidak sama digunakan semasa objek zip dibuat pertama kali.

Menggunakan Zip Apabila Anda Ingin Menjauhkan Elemen dari Terpanjang

Dalam beberapa contoh di atas, anda mungkin telah memperhatikan bahawa fungsi zip secara lalai berhenti pada elemen terakhir yang terpendek terpendek. Bagaimana jika anda menginginkannya terus berulang sehingga mencapai elemen terakhir yang paling lama berulang?

Dalam kes sedemikian, anda perlu menggunakan kaedah zip_longest () dari modul itertools Python. Ia berfungsi sama seperti fungsi zip, dengan satu perbezaan kecil yang berhenti pada elemen terakhir dari jenis terpanjang terpanjang.

dari itertools mengimportzip_panjang
senarai1= ['ke', 'b', 'c']
senarai2= ['epal', 'bola', 'kucing', 'anak patung']
senarai3= ['5', '3']
berzip=zip_panjang(senarai1,senarai2,senarai3)
mencetak (senarai(berzip))

Setelah menjalankan contoh kod yang disebutkan di atas, anda akan mendapat hasil berikut:

[('a', 'apple', '5'), ('b', 'ball', '3'), ('c', 'cat', None), (Tiada, 'boneka', Tiada) ]

Nilai yang hilang diisi sebagai objek jenis Tiada. Anda juga dapat memberikan nilai anda sendiri untuk diisi dengan menyampaikan argumen nilai tambah tambahan ke kaedah zip_panjang.

dari itertools mengimportzip_panjang
senarai1= ['ke', 'b', 'c']
senarai2= ['epal', 'bola', 'kucing', 'anak patung']
senarai3= ['5', '3']
berzip=zip_panjang(senarai1,senarai2,senarai3,nilai isi='nilai_ku')
mencetak (senarai(berzip))

Setelah menjalankan contoh kod yang disebutkan di atas, anda akan mendapat hasil berikut:

[('a', 'apple', '5'), ('b', 'ball', '3'), ('c', 'cat', 'my_value'), ('my_value', 'boneka ',' nilai_ku ')]

Kesimpulannya

Fungsi zip boleh dicontohi menggunakan beberapa pernyataan gelung dan keadaan. Walau bagaimanapun, ia membantu menjaga kod teratur dan bersih dengan menghilangkan pernyataan yang tidak perlu dan berulang-ulang.