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

Patricia Arquette
Lepaskan: 2024-10-26 22:33:31
asal
395 orang telah melayarinya

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

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

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!

sumber:php.cn
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!