Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Adakah terdapat cara yang lebih cekap untuk menyemak sama ada mana-mana item daripada satu senarai wujud dalam senarai lain?

Adakah terdapat cara yang lebih cekap untuk menyemak sama ada mana-mana item daripada satu senarai wujud dalam senarai lain?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-21 07:58:09766semak imbas

Is there a More Efficient Way to Check if Any Item From One List Exists in Another List?

Memasukkan Berbilang Item dalam Pengesahan Senarai

Soalan awal berkisar tentang mencari kaedah yang cekap untuk memastikan sama ada terdapat sebarang item daripada senarai yang diberikan dalam senarai lain. Daripada menggunakan fungsi tersuai, artikel ini meneroka pendekatan alternatif untuk menangani senario ini.

Pendekatan 1: Pemahaman Senarai

Seperti yang ditunjukkan di bawah, pemahaman senarai boleh digunakan untuk mengasingkan item dalam senarai pertama yang wujud dalam senarai kedua list:

L1 = [2, 3, 4]
L2 = [1, 2]
[i for i in L1 if i in L2]

Pendekatan ini menghasilkan senarai item yang sepadan, yang mempunyai nilai Boolean True jika ia mengandungi elemen. Dalam contoh yang diberikan, ia akan mengembalikan [2].

Pendekatan 2: Tetapkan Persimpangan

Sebagai alternatif, set boleh digunakan untuk perbandingan senarai yang lebih cekap. Dengan menukar setiap senarai kepada set, persilangan mereka boleh didapati seperti berikut:

S1 = set(L1)
S2 = set(L2)
S1.intersection(S2)

Sama seperti pemahaman senarai, persilangan dua set hanya mengandungi elemen padanan. Memandangkan set kosong menilai kepada Salah, hasil persilangan boleh digunakan secara langsung sebagai nilai kebenaran.

Pertimbangan Penilaian Logik

Adalah penting untuk ambil perhatian bahawa kewujudan satu item yang sepadan adalah mencukupi untuk mengembalikan True dalam mana-mana pendekatan. Oleh itu, kaedah ini mungkin tidak sesuai untuk senario di mana semua item perlu ada.

Atas ialah kandungan terperinci Adakah terdapat cara yang lebih cekap untuk menyemak sama ada mana-mana item daripada satu senarai wujud dalam senarai lain?. 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