Bagaimana untuk Semak Keahlian Subset Senarai dengan Cekap dalam Senario Kritikal Prestasi?

Mary-Kate Olsen
Lepaskan: 2024-10-18 13:55:30
asal
544 orang telah melayarinya

How to Efficiently Check List Subset Membership in Performance-Critical Scenarios?

Mengesahkan Keahlian Subset Senarai untuk Senario Kritikal Prestasi

Diberi dua senarai, menentukan sama ada satu ialah subset daripada yang lain ialah operasi biasa . Untuk mencapai prestasi optimum, memilih pendekatan yang paling cekap adalah penting.

Satu kaedah melibatkan persilangan set yang diperolehi daripada senarai dan menyemak sama ada hasilnya sama dengan satu set. Walau bagaimanapun, memandangkan bilangan set data yang terlibat, penyelesaian yang lebih berprestasi diperlukan.

Apabila satu senarai statik dan satu lagi ialah kamus dinamik dari mana kunci diekstrak, pendekatan alternatif disyorkan. Pertimbangkan penyelesaian berikut:

<code class="python">def is_subset(lookup_table, dynamic_list):
    # Convert lookup table to a set for efficient lookups
    lookup_set = set(lookup_table)
    
    # Convert dynamic list to a set for faster comparisons
    dynamic_set = set(dynamic_list.keys())
    
    # Check if the dynamic list's set is a subset of the lookup table's set
    return dynamic_set <= lookup_set
Salin selepas log masuk

Dengan menukar jadual carian statik dan senarai dinamik kepada set, operasi carian jauh lebih pantas. Selain itu, penggunaan operator <= untuk membandingkan set adalah sangat cekap.

Contoh:

<code class="python">>>> lookup_table = [1, 3, 5]
>>> dynamic_list = [1, 3, 5, 8]
>>> is_subset(lookup_table, dynamic_list)
True

>>> lookup_table = ['yes', 'no', 'hmm']
>>> dynamic_list = ['sorry', 'no', 'hmm']
>>> is_subset(lookup_table, dynamic_list)
False</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Semak Keahlian Subset Senarai dengan Cekap dalam Senario Kritikal Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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