Cara Menghapus Duplikat dari Daftar di Python

Python hapus Duplikat dari Daftar

Daftar adalah wadah yang berisi berbagai hal Python objek, yang bisa berupa bilangan bulat, kata, nilai, dll. Ini setara dengan array dalam bahasa pemrograman lain.

Jadi di sini akan membahas berbagai cara untuk menghapus duplikat dari daftar tertentu Python.

Metode 1) Hapus duplikat dari daftar menggunakan Set

Untuk menghapus duplikat dari daftar, Anda dapat menggunakan fungsi bawaan set(). Keistimewaan metode set() adalah ia mengembalikan elemen yang berbeda.

Kami memiliki daftarnya: [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 kepada set() fungsi bawaan. Later daftar akhir ditampilkan menggunakan list() fungsi bawaan, seperti yang ditunjukkan pada contoh di bawah ini.


Output yang kita dapatkan adalah elemen berbeda dimana semua elemen duplikat dihilangkan.
Example

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]

Metode 2) Menggunakan Daftar Sementara

Untuk menghapus duplikat dari yang diberikan list, Anda dapat menggunakan daftar sementara yang kosong. Untuk pertama-tama, Anda harus menelusuri daftar yang memiliki duplikat dan menambahkan item unik ke daftar sementara. Later daftar sementara ditugaskan ke daftar utama.

Example
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]

Metode 3) Menggunakan Dikt

Kami dapat menghapus duplikat dari daftar yang diberikan dengan mengimpor OrderedDict dari koleksi. Ini tersedia mulai python2.7 dan seterusnya. OrderedDict menangani pengembalian elemen-elemen berbeda kepada Anda sesuai urutan keberadaan kuncinya.

Mari kita manfaatkan daftar dan gunakan fromkeys() metode yang tersedia di OrderedDict untuk mendapatkan elemen unik dari daftar.

Untuk memanfaatkan OrderedDict.fromkey() metode, Anda harus mengimpor OrderedDict dari koleksi, seperti yang ditunjukkan di bawah ini:

from collections import OrderedDict

Berikut adalah contoh untuk menghapus duplikat menggunakan OrderedDict.fromkeys() Metode.

Example

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']

Mulai dari Python 3.5+ dan seterusnya, kita bisa menggunakan yang reguler dict.fromkeys() untuk mendapatkan elemen berbeda dari daftar. Itu dict.fromkeys() metode 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:

Example

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']

Metode 4) Menggunakan for-loop

Menggunakan untuk-loop, kami akan melintasi daftar item untuk menghapus duplikat.

Pertama inisialisasi array untuk mengosongkan yaitu myFinallist = [].Di dalam for-loop, tambahkan pemeriksaan apakah item dalam daftar ada dalam 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:

Example

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]

Metode 5) Menggunakan pemahaman daftar

Pemahaman daftar adalah Python fungsi yang digunakan untuk membuat sequence baru (seperti daftar, kamus, dll) menggunakan sequence yang sudah dibuat. Ini membantu Anda mengurangi loop yang lebih panjang dan membuat kode Anda lebih mudah dibaca dan dipelihara.

Mari kita manfaatkan pemahaman daftar untuk menghapus duplikat dari daftar yang diberikan.

Example

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]

Metode 6) Menggunakan metode Numpy unik().

Metode unique() dari modul Numpy dapat membantu kami menghapus duplikat dari daftar yang diberikan.

Untuk bekerja dengan modul numpy impor pertama Numpy, Anda perlu 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. Outputnya dikonversi kembali ke format daftar menggunakan tolist() Metode.

myFinalList = np.unique(my_list).tolist()

Langkah 3) Terakhir cetak daftar seperti yang ditunjukkan di bawah ini:

print(myFinalList)

Kode akhir 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]

Metode 7) Menggunakan metode Pandas

Modul Pandas memiliki a unique() metode yang akan memberi kita elemen unik dari daftar yang diberikan.

Untuk bekerja dengan modul Pandas, Anda perlu mengikuti langkah-langkah berikut:

Langkah 1) Impor modul Pandas

import pandas as pd

Langkah 2) Gunakan daftar Anda dengan duplikat di dalamnya unique() caranya seperti gambar di bawah ini:

myFinalList = pd.unique(my_list).tolist()

Langkah 3) Cetak daftar seperti yang ditunjukkan di bawah ini:

print(myFinalList)

Kode akhir 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]

Metode 8) Menggunakan enumerate() dan pemahaman daftar

Di sini kombinasi pemahaman daftar dan enumerasi untuk menghapus elemen duplikat. Enumerate mengembalikan objek dengan counter untuk setiap elemen dalam daftar. Misalnya (0,1), (1,2) dst. Di sini nilai pertama adalah indeks, dan nilai kedua adalah item daftar. W

Setiap elemen diperiksa apakah ada dalam daftar, dan jika ada, maka akan dihapus dari daftar.

Example

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 dari set() metodenya adalah mengembalikan elemen yang berbeda.
  • Anda dapat menghapus duplikat dari daftar yang diberikan dengan mengimpor OrderedDictfrom koleksi. Ini tersedia mulai python2.7 dan seterusnya. OrderedDictdict menangani pengembalian elemen-elemen berbeda kepada Anda sesuai urutan keberadaan kuncinya.
  • Anda dapat menggunakan for-loop yang akan kita lintasi pada daftar item untuk menghapus duplikat.
  • Metode unique() dari modul Numpy dapat membantu kami menghapus duplikat dari daftar yang diberikan.
  • Modul Pandas memiliki a unique() metode yang akan memberi kita elemen unik dari daftar yang diberikan.
  • Kombinasi pemahaman daftar dan enumerasi digunakan untuk menghapus elemen duplikat dari daftar. Enumerate mengembalikan objek dengan counter untuk setiap elemen dalam daftar.