Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menjana Senarai Baharu dengan Setiap Item Nth daripada Senarai Asal?

Bagaimana untuk Menjana Senarai Baharu dengan Setiap Item Nth daripada Senarai Asal?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-20 10:56:02659semak imbas

How to Generate a New List with Every Nth Item from an Original List?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn