Apabila bekerja dengan senarai dengan panjang yang berbeza-beza, mengezip senarai tersebut bersama-sama boleh menimbulkan cabaran. Fungsi zip() lalai dalam Python memasangkan elemen dari senarai yang lebih pendek dengan yang dari senarai yang lebih panjang, meninggalkan elemen yang tinggal dari senarai yang lebih panjang tidak berpasangan. Untuk menangani had ini, kita boleh memanfaatkan kuasa pengulangan lelaran.
Satu cara berkesan untuk mengulang senarai yang lebih pendek adalah dengan menggunakan fungsi itertools.cycle. Fungsi ini mencipta lelaran yang tidak berkesudahan menggelung melalui unsur-unsur yang boleh diulang, walaupun selepas keletihan. Dengan memasukkan kitaran ke dalam operasi zip kami, kami boleh memastikan senarai yang lebih pendek berulang sehingga senarai yang lebih panjang dilindungi sepenuhnya.
Menggunakan itertools.cycle untuk zip senarai bersaiz berbeza adalah mudah. . Coretan kod berikut menunjukkan pelaksanaannya:
<code class="python">import itertools A = [1, 2, 3, 4, 5, 6, 7, 8, 9] B = ["A", "B", "C"] from itertools import cycle zip_list = zip(A, cycle(B)) if len(A) > len(B) else zip(cycle(A), B) for item in zip_list: print(item)</code>
Melaksanakan kod yang disediakan menghasilkan output berikut:
(1, 'A') (2, 'B') (3, 'C') (4, 'A') (5, 'B') (6, 'C') (7, 'A') (8, 'B') (9, 'C')
Seperti yang dapat kita perhatikan, semakin pendek senarai B berulang sehingga semua elemen daripada senarai A yang lebih panjang dipasangkan. Pengulangan yang lancar ini memastikan tiada unsur dibiarkan tidak berpasangan, membolehkan kami melakukan operasi pada keseluruhan senarai tanpa kehilangan data.
Atas ialah kandungan terperinci Bagaimana untuk Zip Senarai Bersaiz Berbeza dalam Python Menggunakan Pengulangan Lelaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!