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

DDD
Lepaskan: 2024-10-26 21:55:29
asal
144 orang telah melayarinya

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

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

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!

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
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!