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

Mary-Kate Olsen
Lepaskan: 2024-10-20 10:56:02
asal
658 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!