Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Anda Boleh Menentukan Kehadiran Subsenarai Dengan Cekap Dalam Senarai Lebih Besar dalam Python?

Bagaimanakah Anda Boleh Menentukan Kehadiran Subsenarai Dengan Cekap Dalam Senarai Lebih Besar dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-10-26 22:33:31470semak imbas

How Can You Efficiently Determine Sublist Presence Within a Larger List in Python?

Mencari Senarai untuk Kehadiran Subsenarai dalam Python

Mengenal pasti kehadiran subsenarai dalam senarai yang lebih besar ialah tugas pengaturcaraan biasa. Python menawarkan penyelesaian mudah untuk masalah ini menggunakan fungsi tersuai.

Perumusan Masalah:

Memandangkan dua senarai, list1 dan list2, tentukan sama ada elemen list2 wujud sebagai urutan bersebelahan dalam senarai1. Pertimbangkan kes ujian berikut:

<code class="python">list1 = [1,0,1,1,1,0,0]
list2 = [1,0,1,0,1,0,1]

# Should return True
sublistExists(list1, [1,1,1])

# Should return False
sublistExists(list2, [1,1,1])</code>

Pelaksanaan:

Keupayaan pengaturcaraan fungsian Python membolehkan penyelesaian ringkas menggunakan fungsi any() dan pemahaman senarai:

<code class="python">def contains_sublist(lst, sublst):
    n = len(sublst)
    return any((sublst == lst[i:i+n]) for i in range(len(lst)-n+1))</code>

Fungsi ini mengambil dua hujah: lst (senarai utama) dan sublst (subsenarai untuk dicari). Ia mengira panjang sublst dan menggunakan pemahaman senarai untuk menjana jujukan julat indeks dalam lst. Untuk setiap julat, ia membandingkan sublst dengan elemen yang sepadan dalam lst. Jika padanan ditemui, any() mengembalikan True; jika tidak, ia mengembalikan Palsu.

Contoh Penggunaan:

Dalam kes ujian yang disediakan, sublistExists(list1, [1,1,1]) mengembalikan True dan sublistExists( list2, [1,1,1]) mengembalikan False, seperti yang dijangkakan.

Nota:

Fungsi any() mengoptimumkan carian dengan menamatkan pada perlawanan pertama . Fungsi ini mempunyai kerumitan masa O(m*n), dengan m ialah panjang lst dan n ialah panjang sublst.

Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Menentukan Kehadiran Subsenarai Dengan Cekap Dalam Senarai Lebih Besar 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