Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Mengeluarkan Setiap Elemen Nth dengan Cekap dari Senarai dalam Python?

Bagaimana Mengeluarkan Setiap Elemen Nth dengan Cekap dari Senarai dalam Python?

Susan Sarandon
Susan Sarandonasal
2024-10-20 11:17:30123semak imbas

How to Efficiently Extract Every Nth Element from a List in Python?

Ekstrak Setiap Elemen Nth daripada Senarai dalam Python

Apabila berhadapan dengan tugas mengekstrak setiap elemen Nth daripada senarai, seperti memilih setiap item ke-10 daripada senarai integer antara 0 hingga 1000, pendekatan yang mudah mungkin melibatkan penggunaan gelung for untuk lelaran melalui senarai dan semak modulus indeks setiap elemen oleh N. Walau bagaimanapun, terdapat kaedah yang lebih cekap dan elegan yang boleh mencapai hasil yang sama dengan satu baris kod.

Menggunakan sintaks penghirisan Python, kita boleh mengekstrak setiap elemen Nth dengan menentukan saiz langkah N. Dalam contoh yang disediakan, kita boleh mendapatkan senarai yang dikehendaki menggunakan kod berikut:

<code class="python">xs = list(range(165))
result = xs[0::10]</code>

Kaedah ini jauh lebih pantas daripada menyemak indeks setiap elemen secara berulang, seperti yang ditunjukkan oleh perbandingan masa berikut:

$ 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

Dengan menggunakan sintaks penghirisan, kita boleh cekap ekstrak setiap elemen Nth daripada senarai dalam Python, yang amat bermanfaat untuk senarai besar yang membimbangkan kelajuan.

Atas ialah kandungan terperinci Bagaimana Mengeluarkan Setiap Elemen Nth dengan Cekap dari Senarai dalam Python?. 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