Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menentukan dengan Cekap sama ada Subsenarai Wujud dalam Python?

Bagaimana untuk Menentukan dengan Cekap sama ada Subsenarai Wujud dalam Python?

DDD
DDDasal
2024-10-26 21:55:29145semak imbas

 How to Efficiently Determine if a Sublist Exists in Python?

Mengesan Kehadiran Subsenarai dalam Python

Tugas di tangan ialah merangka fungsi yang mengesahkan kewujudan subsenarai dalam senarai yang lebih besar. Memandangkan dua senarai, satu sebagai senarai yang lebih besar (senarai1) dan satu lagi sebagai subsenarai berpotensi (senarai2), fungsi harus menentukan sama ada list2 sememangnya subsenarai senarai1.

Melaksanakan Fungsi

Python menyediakan fungsi serba boleh bernama any() yang boleh dimanfaatkan untuk tujuan ini. Coretan kod berikut menunjukkan cara membina fungsi yang menggunakan mana-mana():

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

Fungsi ini mengimbas senarai yang lebih besar (lst) dengan teliti dengan mengulangi elemennya satu demi satu. Bagi setiap elemen pada indeks i, ia mengeluarkan subsenarai bersebelahan panjang n dan membandingkannya dengan subsenarai berpotensi (sublst). Jika padanan dikesan, fungsi segera mengembalikan Benar, menunjukkan kehadiran subsenarai. Proses ini berterusan sehingga sama ada padanan ditemui atau keseluruhan senarai yang lebih besar telah habis, dalam kes ini fungsi mengembalikan Palsu.

Pertimbangan Prestasi

Adalah penting untuk ambil perhatian bahawa kerumitan masa fungsi ini ialah O(m*n), dengan m ialah panjang senarai yang lebih besar dan n ialah panjang subsenarai berpotensi. Untuk setiap lelaran, fungsi melaksanakan operasi perbandingan subsenarai dan bilangan lelaran dikekang oleh perbezaan antara m dan n tambah satu.

Contoh Penggunaan

Mari kita menggambarkan penggunaan fungsi sublist_exists dengan contoh yang disediakan:

<code class="python">>>> sublist_exists([1,0,1,1,1,0,0], [1,1,1])
True

>>> sublist_exists([1,0,1,0,1,0,1], [1,1,1])
False</code>

Dalam contoh pertama, [1,1,1] sememangnya merupakan subsenarai senarai yang lebih besar, jadi fungsi itu mengembalikan True. Dalam contoh kedua, [1,1,1] tidak muncul dalam senarai yang lebih besar, jadi fungsi mengembalikan Palsu.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan dengan Cekap sama ada Subsenarai Wujud 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