Buat Senarai dengan Setiap Item N dari Senarai Asal
Dalam analisis data atau pengaturcaraan, selalunya perlu untuk bekerja dengan subset satu senarai. Satu tugas biasa adalah untuk mencipta senarai baharu yang mengandungi hanya setiap item N dari senarai asal. Contohnya, diberikan senarai integer dari 0 hingga 1000, bagaimanakah kita boleh mendapatkan senarai yang merangkumi hanya yang pertama dan setiap item ke-10 yang berikutnya?
Menggunakan gelung untuk tradisional, kita boleh menyelesaikan tugas ini seperti berikut:
<code class="python">xs = list(range(1001)) new_list = [] for i, x in enumerate(xs): if i % 10 == 0: new_list.append(x)</code>
Walau bagaimanapun, pendekatan yang lebih ringkas dan cekap tersedia menggunakan penghirisan Python:
<code class="python">>>> xs = list(range(1001)) >>> new_list = xs[0::10]</code>
Dalam penyelesaian ini, ungkapan xs[0::10] mencipta senarai baharu yang termasuk setiap item ke-10 bermula dari indeks 0. Hasilnya ialah senarai yang mengandungi [0, 10, 20, 30, ..., 1000] tanpa memerlukan semakan gelung atau bersyarat.
Kaedah ini jauh lebih pantas daripada pendekatan gelung untuk, terbukti berfaedah apabila berurusan dengan senarai besar. Seperti yang ditunjukkan oleh perbandingan masa berikut:
<code class="python">$ python -m timeit -s "xs = list(range(1000))" "[x for i, x in enumerate(xs) if i % 10 == 0]" 500 loops, best of 5: 476 usec per loop $ python -m timeit -s "xs = list(range(1000))" "xs[0::10]" 100000 loops, best of 5: 3.32 usec per loop</code>
Pendekatan dioptimumkan menggunakan penghirisan ini menawarkan kedua-dua kesederhanaan dan kelebihan prestasi untuk mencipta senarai baharu dengan setiap item Nth daripada senarai asal.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Senarai Baharu dengan Setiap Item Nth daripada Senarai Asal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!