Karena daftar python adalah kumpulan dari banyak elemen yang bahkan berisi duplikat, terkadang daftar itu perlu dibuat unik. Di sini, kita akan mempelajari berbagai cara untuk menghapus duplikat dari daftar dengan python. Jadi, mari kita mulai
Apa itu Daftar?
Daftar ini adalah tipe data terpenting dalam bahasa python. Dalam bahasa Python, daftar ditulis sebagai daftar nilai yang dipisahkan koma di dalam tanda kurung siku. Keuntungan paling penting dari daftar adalah bahwa elemen di dalam daftar tidak harus memiliki tipe data yang sama dan pengindeksan negatif.
Juga, semua operasi string juga diterapkan pada tipe data daftar seperti pemotongan, penggabungan, dll. Juga, kita dapat membuat daftar bersarang i. e daftar berisi daftar lain
Contoh
# creating a list of items with different data types sample_list = [6,"mark",[A,I]] print(sample_list)
Keluaran
[6, mark, ['A', 'I']] _
Apa Perlunya Menghapus Duplikat dari Daftar?
Ada beberapa alasan untuk melakukannya. Duplikat dalam daftar dapat membuat sulit untuk dibaca dan dipahami. Itu juga dapat mengambil ruang yang tidak perlu. Ini adalah alasan utama untuk menghapus duplikat dari daftar python. Selain itu, dapat menyebabkan kebingungan dan kesalahan jika Anda menggunakan daftar untuk operasi tertentu
Misalnya, jika Anda mencoba menemukan elemen unik dalam daftar, duplikat dapat memberikan hasil yang salah. Secara umum, ada baiknya menghapus duplikat dari daftar agar lebih teratur dan lebih mudah digunakan
5 Cara Menghapus Duplikat dari Daftar dengan Python
Ada banyak cara untuk menghapus duplikat dari daftar dengan python. Mari kita pelajari di bawah ini
Metode 1) Metode Naif
Dalam metode ini, kami akan mengulangi seluruh daftar menggunakan for loop. Kami akan membuat daftar baru untuk menyimpan semua nilai unik dan menggunakan operator "not in" dengan python untuk mengetahui apakah elemen saat ini yang kami periksa ada di daftar baru yang telah kami buat. Jika tidak ada, kami akan menambahkannya ke daftar baru dan jika ada, kami akan mengabaikannya
Kode
# removing duplicated from the list using naive methods # initializing list sam_list = [11, 13, 15, 16, 13, 15, 16, 11] print ("The list is: " + str(sam_list)) # remove duplicated from list result = [] for i in sam_list: if i not in result: result.append(i) # printing list after removal print ("The list after removing duplicates : " + str(result))
Keluaran
The list is: [11, 13, 15, 16, 13, 15, 16, 11] The list after removing duplicates: [11, 13, 15, 16]
Metode 2) Menggunakan pemahaman daftar
Pemahaman daftar mengacu pada penggunaan for loop untuk membuat daftar dan kemudian menyimpannya di bawah nama variabel. Metode ini mirip dengan pendekatan naif yang telah kita diskusikan di atas tetapi alih-alih menggunakan loop for eksternal, metode ini membuat loop for di dalam kurung siku daftar. Metode ini disebut pemahaman daftar
Kami menggunakan loop for di dalam kurung kurawal dan menambahkan kondisi if yang memungkinkan kami untuk memfilter nilai yang merupakan duplikat
Kode
# removing duplicated from the list using list comprehension # initializing list sam_list = [11, 13, 15, 16, 13, 15, 16, 11] print ("The list is: " + str(sam_list)) # to remove duplicated from list result = [] [result.append(x) for x in sam_list if x not in result] # printing list after removal print ("The list after removing duplicates: " + str(result)) _
Keluaran
The list is: [11, 13, 15, 16, 13, 15, 16, 11] The list after removing duplicates: [11, 13, 15, 16]
Metode 3) Menggunakan set()
Metode ini adalah metode paling populer untuk menghapus duplikat dari daftar python. Himpunan adalah struktur data yang sangat mirip dengan daftar. Ini adalah kumpulan item yang dapat diakses menggunakan nama variabel tunggal. Tetapi sifat yang paling penting dari suatu himpunan adalah tidak boleh memiliki nilai duplikat. Bagaimana kita bisa menggunakan ini?
Jika sebuah daftar diketikkan ke sebuah set, yaitu diteruskan sebagai argumen ke metode set(), itu akan secara otomatis membuat sebuah set yang terdiri dari semua elemen dalam daftar tetapi tidak akan menyimpan nilai duplikat. Himpunan yang dihasilkan dapat diubah kembali menjadi daftar menggunakan metode list(). Satu-satunya kekurangan metode ini adalah, Anda kehilangan urutan yang ada di daftar aslinya
Kode
# removing duplicated from the list using set() # initializing list sam_list = [11, 15, 13, 16, 13, 15, 16, 11] print ("The list is: " + str(sam_list)) # to remove duplicated from list sam_list = list(set(sam_list)) # printing list after removal # ordering distorted print ("The list after removing duplicates: " + str(sam_list)) _
Keluaran
The list is: [11, 13, 15, 16, 13, 15, 16, 11] The list after removing duplicates: [11, 13, 15, 16]
Metode 4) Menggunakan daftar komprehensif + enumerate()
Daftar komprehensif ketika digabungkan dengan fungsi enumerate kita dapat menghapus duplikat dari daftar python. Pada dasarnya dalam metode ini, elemen yang sudah terjadi akan dilewati, dan juga urutannya dipertahankan. Ini dilakukan oleh fungsi enumerate
Dalam kode di bawah ini, variabel n melacak indeks elemen yang diperiksa, dan kemudian dapat digunakan untuk melihat apakah elemen tersebut sudah ada dalam daftar hingga indeks yang ditentukan oleh n. Jika memang ada, kita abaikan atau kita tambahkan ke daftar baru dan ini dilakukan dengan menggunakan pemahaman daftar juga seperti yang kita bahas di atas
Kode
# removing duplicated from the list using list comprehension + enumerate() # initializing list sam_list = [11, 15, 13, 16, 13, 15, 16, 11] print ("The list is: " + str(sam_list)) # to remove duplicated from list result = [i for n, i in enumerate(sam_list) if i not in sam_list[:n]] # printing list after removal print ("The list after removing duplicates: " + str(result)) _
Keluaran
The list is: [11, 13, 15, 16, 13, 15, 16, 11] The list after removing duplicates: [11, 13, 15, 16]
Metode 5) Menggunakan koleksi. DipesanDict. fromkeys()
Ini adalah metode tercepat untuk mencapai target menghapus duplikat dari daftar python. Metode ini pertama-tama akan menghapus duplikat dan mengembalikan kamus yang telah diubah menjadi daftar. Juga, metode ini bekerja dengan baik dalam kasus string
Dalam kode di bawah ini ketika kita menggunakan metode fromkeys() itu akan membuat kunci dari semua elemen dalam daftar. Tetapi kunci dalam kamus tidak dapat digandakan, oleh karena itu, metode fromkeys() akan menghapus nilai duplikatnya sendiri
Kode
[6, mark, ['A', 'I']] _0
Keluaran
The list is: [11, 13, 15, 16, 13, 15, 16, 11] The list after removing duplicates: [11, 13, 15, 16]
Ini adalah beberapa metode yang dapat digunakan untuk menghapus duplikat dari daftar python
Kesimpulan
Oleh karena itu, dalam artikel ini, kami belajar tentang daftar python dan berbagai metode untuk menghapus elemen duplikat dari daftar dengan python. Juga, kami mempelajari contoh bersama dengan output untuk metode yang berbeda