Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Semak Keahlian Subset Senarai dengan Cekap dalam Senario Kritikal Prestasi?

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

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-18 13:55:30545semak imbas

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

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>

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!

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