Python menghapus Duplikat dari Daftar
Daftar adalah wadah yang berisi objek Python yang berbeda, yang bisa berupa bilangan bulat, kata, nilai, dll. Ini setara dengan array dalam bahasa pemrograman lain.
Jadi di sini akan melalui berbagai cara di mana kita dapat menghapus duplikat dari daftar yang diberikan.
Dalam tutorial ini, Anda akan mempelajari:
- Hapus duplikat dari daftar menggunakan Set
- Hapus Duplikat dari daftar menggunakan Daftar Sementara.
- Hapus duplikat dari daftar menggunakan Dict
- Hapus duplikat dari daftar menggunakan for-loop
- Hapus duplikat dari daftar menggunakan pemahaman daftar
- Hapus duplikat dari daftar menggunakan metode Numpy unique().
- Hapus duplikat dari daftar menggunakan metode Pandas
- Hapus duplikat menggunakan enumerate() dan pemahaman daftar
Hapus duplikat dari daftar menggunakan Set
Untuk menghapus duplikat dari daftar, Anda dapat menggunakan fungsi bawaan set(). Keistimewaan metode set() adalah mengembalikan elemen yang berbeda.
Kami memiliki daftar:[1,1,2,3,2,2,4,5,6,2,1]. Daftar ini memiliki banyak duplikat yang perlu kita hapus dan dapatkan kembali hanya elemen yang berbeda. Daftar tersebut diberikan ke fungsi bawaan set(). Nanti daftar akhir ditampilkan menggunakan fungsi built-in list(), seperti yang ditunjukkan pada contoh di bawah ini.
Output yang kita dapatkan adalah elemen yang berbeda di mana semua elemen duplikat dihilangkan.
my_list = [1,1,2,3,2,2,4,5,6,2,1]
my_final_list = set(my_list)
print(list(my_final_list))
Keluaran:
[1, 2, 3, 4, 5, 6]
Hapus Duplikat dari daftar menggunakan Daftar Sementara
Untuk menghapus duplikat dari daftar yang diberikan, Anda dapat menggunakan daftar sementara yang kosong. Untuk itu pertama, Anda harus mengulang daftar yang memiliki duplikat dan menambahkan item unik ke daftar sementara. Nanti daftar sementara ditetapkan ke daftar utama.
Berikut adalah contoh kerja menggunakan daftar sementara.
my_list = [1, 2, 3, 1, 2, 4, 5, 4 ,6, 2]
print("List Before ", my_list)
temp_list = []
for i in my_list:
if i not in temp_list:
temp_list.append(i)
my_list = temp_list
print("List After removing duplicates ", my_list)
Keluaran:
List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
List After removing duplicates [1, 2, 3, 4, 5, 6]
Hapus duplikat dari daftar menggunakan Dict
Kami dapat menghapus duplikat dari daftar yang diberikan dengan mengimpor OrderedDict dari koleksi. Ini tersedia dari python2.7 dan seterusnya. OrderedDict menangani pengembalian elemen yang berbeda kepada Anda dalam urutan di mana kuncinya ada.
Mari kita manfaatkan daftar dan gunakan metode fromkeys() yang tersedia di OrderedDict untuk mendapatkan elemen unik dari daftar.
Untuk menggunakan metode OrderedDict.fromkey(), Anda harus mengimpor OrderedDict dari koleksi, seperti yang ditunjukkan di bawah ini:
from collections import OrderedDict
Berikut adalah contoh untuk menghapus duplikat menggunakan metode OrderedDict.fromkeys().
from collections import OrderedDict
my_list = ['a','x','a','y','a','b','b','c']
my_final_list = OrderedDict.fromkeys(my_list)
print(list(my_final_list))
Keluaran:
['a', 'x', 'y', 'b', 'c']
Dari Python 3.5+ dan seterusnya, kita dapat menggunakan dict.fromkeys() reguler untuk mendapatkan elemen berbeda dari daftar. Metode dict.fromkeys() mengembalikan kunci yang unik dan membantu menghilangkan nilai duplikat.
Contoh yang menunjukkan cara kerja dict.fromkeys() pada daftar untuk memberikan item unik adalah sebagai berikut:
my_list = ['a','x','a','y','a','b','b','c']
my_final_list = dict.fromkeys(my_list)
print(list(my_final_list))
Keluaran:
['a', 'x', 'y', 'b', 'c']
Hapus duplikat dari daftar menggunakan for-loop
Menggunakan for-loop, kami akan menelusuri daftar item untuk menghapus duplikat.
Pertama-tama inisialisasi array ke kosong yaitu myFinallist =[]. Di dalam for-loop, tambahkan centang apakah item dalam daftar ada di array myFinallist. Jika item tidak ada, tambahkan item ke array myFinallist menggunakan append() metode.
Jadi, setiap kali item duplikat ditemukan, item tersebut sudah ada di array myFinallist dan tidak akan dimasukkan. Sekarang mari kita periksa hal yang sama pada contoh di bawah ini:
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinallist = []
for i in my_list:
if i not in myFinallist:
myFinallist.append(i)
print(list(myFinallist))
Keluaran:
[1, 2, 3, 4, 5, 6]
Hapus duplikat dari daftar menggunakan pemahaman daftar
Pemahaman daftar adalah fungsi Python yang digunakan untuk membuat urutan baru (seperti daftar, kamus, dll.) menggunakan urutan yang telah dibuat. Ini membantu Anda mengurangi pengulangan yang lebih panjang dan membuat kode Anda lebih mudah dibaca dan dipelihara.
Mari kita gunakan pemahaman daftar untuk menghapus duplikat dari daftar yang diberikan.
my_list = [1,2,2,3,1,4,5,1,2,6]
my_finallist = []
[my_finallist.append(n) for n in my_list if n not in my_finallist]
print(my_finallist)
Keluaran:
[1, 2, 3, 4, 5, 6]
Hapus duplikat dari daftar menggunakan metode Numpy unique().
Metode unique() dari modul Numpy dapat membantu kita menghapus duplikat dari daftar yang diberikan.
Untuk bekerja dengan modul numpy impor pertama Numpy, Anda harus mengikuti langkah-langkah berikut:
Langkah 1 ) Impor modul Numpy
import numpy as np
Langkah 2) Gunakan daftar Anda dengan duplikat di dalam metode unik seperti yang ditunjukkan di bawah ini. Output dikonversi kembali ke format daftar menggunakan metode tolist().
myFinalList = np.unique(my_list).tolist()
Langkah 3) Terakhir cetak daftar seperti gambar di bawah ini:
print(myFinalList)
Kode terakhir dengan output adalah sebagai berikut:
import numpy as np
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = np.unique(my_list).tolist()
print(myFinalList)
Keluaran:
[1, 2, 3, 4, 5, 6]
Hapus duplikat dari daftar menggunakan metode Pandas
Modul Pandas memiliki metode unique() yang akan memberi kita elemen unik dari daftar yang diberikan.
Untuk bekerja dengan modul Pandas, Anda harus mengikuti langkah-langkah berikut:
Langkah 1) Impor Modul Panda
import pandas as pd
Langkah 2) Gunakan daftar Anda dengan duplikat di dalam metode unique() seperti yang ditunjukkan di bawah ini:
myFinalList = pd.unique(my_list).tolist()
Langkah 3) Cetak daftar seperti di bawah ini:
print(myFinalList)
Kode terakhir dengan output adalah sebagai berikut:
import pandas as pd
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = pd.unique(my_list).tolist()
print(myFinalList)
Keluaran:
[1, 2, 3, 4, 5, 6]
Hapus duplikat menggunakan enumerate() dan pemahaman daftar
Di sini kombinasi pemahaman daftar dan enumerasi untuk menghapus elemen duplikat. Enumerate mengembalikan objek dengan penghitung ke setiap elemen dalam daftar. Misalnya (0,1), (1,2) dll. Di sini nilai pertama adalah indeks, dan nilai kedua adalah item daftar. K
Setiap elemen diperiksa apakah ada dalam daftar, dan jika ada, elemen tersebut akan dihapus dari daftar.
my_list = [1,2,2,3,1,4,5,1,2,6]
my_finallist = [i for j, i in enumerate(my_list) if i not in my_list[:j]]
print(list(my_finallist))
Keluaran:
[1, 2, 3, 4, 5, 6]
Ringkasan
- Untuk menghapus duplikat dari daftar, Anda dapat menggunakan fungsi bawaan set(). Keistimewaan metode set() adalah mengembalikan elemen yang berbeda.
- Anda dapat menghapus duplikat dari daftar yang diberikan dengan mengimpor OrderedDictdari koleksi. Ini tersedia dari python2.7 dan seterusnya. OrderedDictdict menangani pengembalian elemen yang berbeda kepada Anda dalam urutan di mana kuncinya ada.
- Anda dapat menggunakan for-loop yang akan kami telusuri daftar item untuk menghapus duplikat.
- Metode unique() dari modul Numpy dapat membantu kita menghapus duplikat dari daftar yang diberikan.
- Modul Pandas memiliki metode unique() yang akan memberi kita elemen unik dari daftar yang diberikan.
- Kombinasi pemahaman daftar dan enumerate digunakan untuk menghapus elemen duplikat dari daftar. Enumerate mengembalikan objek dengan penghitung ke setiap elemen dalam daftar.