Cara Menghapus Duplikat Dari Daftar dengan Python
Pelajari cara menghapus duplikat dari daftar dengan Python sambil mempertahankan atau mengabaikan urutan. Bandingkan konversi set, tombol dict, dan metode loop.
Ikhtisar
Data duplikat sering kali masuk ke dalam daftar melalui pengambilan database, interaksi pengguna, atau agregasi log. Menghapus duplikat ini merupakan langkah pembersihan data mendasar yang memastikan keunikan dan mencegah redundansi dalam logika hilir. Python menyediakan beberapa teknik untuk mencapai hal ini, mulai dari konversi set cepat hingga operasi berbasis loop yang memperhatikan pengurutan elemen.
Cara tercepat dan paling umum untuk menghilangkan elemen duplikat adalah mengonversi daftar menjadi `set` menggunakan konstruktor `set()`, lalu mengonversinya kembali menjadi daftar. Karena kumpulan tidak boleh berisi nilai duplikat, proses ini secara otomatis membuang duplikat. Kelemahan dari pendekatan ini adalah himpunan tidak berurutan, yang berarti urutan elemen aslinya hilang.
Untuk mempertahankan urutan asli elemen sambil menghapus duplikat,Python 3.7+ menawarkan solusi cerdas menggunakan kelas kamus bawaan: `list(dict.fromkeys(my_list))`. Karena kunci kamus bersifat unik dan mempertahankan urutan penyisipan, metode ini secara efektif menghapus duplikat elemen sambil menjaga urutannya tetap utuh. Untuk kriteria khusus atau versi Python yang lebih lama, perulangan manual menggunakan kumpulan pembantu untuk melacak elemen yang terlihat juga sangat efektif.
Kode & Output Eksekusi
Skrip ini mendemonstrasikan penghapusan duplikat elemen daftar menggunakan set, kunci kamus, dan loop manual.
numbers = [2, 1, 2, 3, 1, 4]
# Method 1: Using set() (Unordered)
unique_unordered = list(set(numbers))
print("Unordered unique:", unique_unordered)
# Method 2: Using dict.fromkeys() (Preserves order)
unique_ordered = list(dict.fromkeys(numbers))
print("Ordered unique:", unique_ordered)
# Method 3: Using a loop with a seen helper
seen = set()
unique_loop = []
for item in numbers:
if item not in seen:
seen.add(item)
unique_loop.append(item)
print("Loop unique:", unique_loop)Unordered unique: [1, 2, 3, 4]
Ordered unique: [2, 1, 3, 4]
Loop unique: [2, 1, 3, 4]Implementasi Langkah demi Langkah
- Ubah daftar menjadi satu set untuk menghapus duplikat secara instan menggunakan set(daftar_saya).
- Gunakan list(dict.fromkeys(my_list)) untuk menghapus duplikat sambil mempertahankan urutan penyisipan.
- Gunakan set pembantu dalam satu lingkaran untuk memfilter duplikat jika Anda memerlukan validasi khusus.
Pertanyaan yang Sering Diajukan
Metode manakah yang tercepat untuk daftar besar?
Mengonversi ke satu set adalah yang tercepat karena pengoptimalan tingkat C, diikuti oleh dict.fromkeys().
Bagaimana cara menghapus duplikat daftar kamus?
Karena kamus tidak dapat di-hash, Anda tidak dapat menggunakan set secara langsung. Anda harus menggunakan pemfilteran pemahaman loop atau daftar berdasarkan ID/kunci unik.
Topik Terkait
Pelajari cara mengurutkan daftar dengan Python menggunakan metode sortir() dan fungsi sortir(). Temukan contoh pengurutan kunci khusus dan urutan terbalik.
Cara Menggunakan Pemahaman Daftar dengan PythonPelajari cara menggunakan pemahaman daftar dengan Python. Tulis loop ringkas, terapkan filter bersyarat, dan buat matriks dengan sintaksis visual yang bersih.
Sumber Daya Python yang Direkomendasikan
Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.
Daftar Python
Pelajari segala sesuatu tentang daftar Python. Temukan cara membuat, mengiris, memodifikasi, dan melakukan iterasi melalui array dengan Python secara asli.
Lembar
Panduan referensi cepat untuk operasi daftar Python. Kuasai penambahan, penyisipan, penghapusan, pengurutan, dan pengirisan elemen.
Python vs JavaScript: Bahasa Pemrograman Mana yang Terbaik?
Perbandingan komprehensif antara Python dan JavaScript. Jelajahi perbedaan sintaksis, kinerja, kasus penggunaan (backend vs frontend), dan contoh pengkodean.