Mencari Pendua dalam Senarai
Memandangkan senarai integer, objektifnya adalah untuk mengenal pasti dan mengasingkan elemen pendua dalam senarai. Untuk mencapai matlamat ini, kami boleh menggunakan pelbagai teknik:
Menggunakan Struktur Data Set
Set ialah koleksi unsur unik yang tidak tertib. Untuk mengalih keluar pendua daripada senarai, kita boleh menukarnya kepada set menggunakan fungsi set(a). Set yang terhasil hanya akan mengandungi unsur-unsur yang berbeza daripada senarai asal.
Mengenal pasti dan Mencetak Pendua
Untuk mengenal pasti dan mencetak pendua, kami boleh menggunakan modul Counter daripada perpustakaan koleksi. Ia menyediakan kaedah yang mudah untuk mengira kejadian setiap elemen dalam senarai. Dengan menggunakan pemahaman, kita boleh mengekstrak elemen yang berlaku lebih daripada sekali:
from collections import Counter a = [1,2,3,2,1,5,6,5,5,5] print([item for item, count in Counter(a).items() if count > 1]) # Output: [1, 2, 5]
Penyingkiran Pendua yang Cekap
Untuk penyingkiran pendua yang cekap, gelung mudah boleh digunakan untuk mengekalkan satu set elemen yang dilihat. Apabila menemui elemen baharu, ia ditambahkan pada set, menunjukkan bahawa ia telah dilihat. Jika elemen sudah ada dalam set, ia dianggap pendua dan boleh dibuang.
seen = set() no_dupes = [] for x in a: if x not in seen: no_dupes.append(x) seen.add(x)
Penyingkiran Pendua Ringkas
Pendekatan ringkas alternatif untuk penyingkiran pendua adalah untuk menggunakan senarai pemahaman:
seen = set() no_dupes = [x for x in a if x not in seen and not seen.add(x)]
Mengendalikan Elemen Tidak Boleh Cincang
Jika elemen dalam senarai tidak boleh cincang (seperti senarai), set dan kamus tidak boleh digunakan. Dalam kes sedemikian, penyelesaian masa kuadratik mesti digunakan, di mana setiap elemen dibandingkan dengan setiap elemen lain.
Atas ialah kandungan terperinci Bagaimanakah Kami Boleh Mencari dan Mengeluarkan Elemen Pendua dengan Cekap daripada Senarai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!