Bir Listeden Yinelenenler Nasıl Kaldırılır Python

Python Yinelenenleri Listeden Kaldırma

Liste, farklı içerikleri içeren bir kaptır Python tamsayılar, kelimeler, değerler vb. olabilen nesneler. Diğer programlama dillerindeki bir dizinin eşdeğeridir.

Burada belirli bir listedeki kopyaları kaldırabileceğimiz farklı yollardan bahsedeceğiz. Python.

Yöntem 1) Set'i kullanarak kopyaları listeden kaldırın

Yinelenenleri listeden kaldırmak için yerleşik işlevi kullanabilirsiniz. set(). set() yönteminin özelliği, farklı öğeler döndürmesidir.

Bir listemiz var: [1,1,2,3,2,2,4,5,6,2,1]. Listede, yalnızca farklı öğeleri kaldırmamız ve geri almamız gereken birçok kopya var. Liste yetkililere verildi set() yerleşik işlev. Later son liste, kullanılarak görüntülenir. list() Aşağıdaki örnekte gösterildiği gibi yerleşik işlev.


Aldığımız çıktı, tüm yinelenen öğelerin ortadan kaldırıldığı farklı öğelerdir.
Örnek E-posta

my_list = [1,1,2,3,2,2,4,5,6,2,1]
my_final_list = set(my_list)
print(list(my_final_list))

Çıktı:

[1, 2, 3, 4, 5, 6]

Yöntem 2) Geçici Listeyi Kullanma

Belirli bir dosyadaki kopyaları kaldırmak için listboş bir geçici listeden yararlanabilirsiniz. Bunun için öncelikle kopyaları olan listede dolaşmanız ve benzersiz öğeleri geçici listeye eklemeniz gerekecek. Later geçici liste ana listeye atanır.

Örnek E-posta
İşte geçici listeyi kullanan çalışan bir örnek.

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)

Çıktı:

List Before  [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
List After removing duplicates  [1, 2, 3, 4, 5, 6]

Yöntem 3) Dict'i Kullanma

Verilen listedeki kopyaları içe aktararak kaldırabiliriz OrderedDict koleksiyonlardan. Python2.7'den itibaren mevcuttur. OrderedDict, farklı öğeleri anahtarın mevcut olduğu sıraya göre size döndürmeyle ilgilenir.

Bir listeden yararlanalım ve kullanalım fromkeys() Listeden benzersiz öğeleri almak için OrderedDict'te mevcut olan yöntem.

Faydalanmak OrderedDict.fromkey() yöntemiyle, OrderedDict'i aşağıda gösterildiği gibi koleksiyonlardan içe aktarmanız gerekir:

from collections import OrderedDict

İşte kullanarak kopyaları kaldırmak için bir örnek: OrderedDict.fromkeys() yöntemi.

Örnek E-posta

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))

Çıktı:

['a', 'x', 'y', 'b', 'c']

Konum Python 3.5+ ve sonrasında normal kullanımdan yararlanabiliriz dict.fromkeys() listeden farklı öğeleri almak için. dict.fromkeys() yöntemler benzersiz anahtarlar döndürür ve yinelenen değerlerden kurtulmaya yardımcı olur.

Çalışmasını gösteren bir örnek dict.fromkeys() Benzersiz öğelerin verileceği liste aşağıdaki gibidir:

Örnek E-posta

my_list = ['a','x','a','y','a','b','b','c']
my_final_list = dict.fromkeys(my_list)
print(list(my_final_list))

Çıktı:

['a', 'x', 'y', 'b', 'c']

Yöntem 4) For döngüsünü kullanma

kullanma döngü içinkopyaları kaldırmak için öğeler listesinde dolaşacağız.

İlk önce diziyi boşaltmak için başlatın, yani myFinallist = [].For döngüsünün içine, listedeki öğelerin dizide mevcut olup olmadığını kontrol edin myFinallist. Öğeler mevcut değilse, öğeyi kullanarak myFinallist dizisine ekleyin. append() yöntemi.

Yani yinelenen öğeyle karşılaşıldığında bu öğe myFinallist dizisinde zaten mevcut olacak ve eklenmeyecektir. Şimdi aşağıdaki örnekte de aynısını kontrol edelim:

Örnek E-posta

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))

Çıktı:

[1, 2, 3, 4, 5, 6]

Yöntem 5) Liste kavramayı kullanma

Liste anlayışları Python Halihazırda oluşturulmuş dizileri kullanarak yeni diziler (listeler, sözlükler vb.) oluşturmak için kullanılan işlevler. Bu, daha uzun döngüleri azaltmanıza ve kodunuzun okunmasını ve bakımını kolaylaştırmanıza yardımcı olur.

Verilen listeden kopyaları kaldırmak için liste kavramayı kullanalım.

Örnek E-posta

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)

Çıktı:

[1, 2, 3, 4, 5, 6]

Yöntem 6) Numpy benzersiz() yöntemini kullanma.

Gibi bir yöntem unique() Numpy modülünden kopyalananları verilen listeden kaldırmamıza yardımcı olabilir.

Numpy'nin ilk içe aktarma numpy modülüyle çalışmak için şu adımları izlemeniz gerekir:

1. Adım) Numpy modülünü içe aktar

import numpy as np

) 2 Adım Listenizi aşağıda gösterildiği gibi benzersiz yöntemin içindeki kopyalarla birlikte kullanın. Çıktı kullanılarak tekrar liste formatına dönüştürülür. tolist() yöntemi.

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

) 3 Adım Son olarak listeyi aşağıda gösterildiği gibi yazdırın:

print(myFinalList)

Çıktı ile son kod aşağıdaki gibidir:

import numpy as np
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = np.unique(my_list).tolist()
print(myFinalList)

Çıktı:

[1, 2, 3, 4, 5, 6]

Yöntem 7) Pandas yöntemlerini kullanma

Pandalar modülünde bir unique() Bize verilen listedeki benzersiz unsurları verecek olan yöntem.

Pandas modülüyle çalışmak için şu adımları izlemeniz gerekir:

) 1 Adım Pandalar modülünü içe aktar

import pandas as pd

) 2 Adım Listenizi içinde yinelenen kopyalar olacak şekilde kullanın unique() aşağıda gösterildiği gibi yöntem:

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

) 3 Adım Listeyi aşağıda gösterildiği gibi yazdırın:

print(myFinalList)

Çıktı ile son kod aşağıdaki gibidir:

import pandas as pd

my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = pd.unique(my_list).tolist()
print(myFinalList)

Çıktı:

[1, 2, 3, 4, 5, 6]

Yöntem 8) Enumerate() ve liste kavramayı kullanma

Burada yinelenen öğeleri kaldırmak için liste anlama ve numaralandırma kombinasyonu kullanılır. Enumerate, listedeki her öğeye sayaç içeren bir nesne döndürür. Örneğin (0,1), (1,2) vb. Burada ilk değer indeks, ikinci değer ise liste öğesidir. K

Her öğenin listede var olup olmadığı kontrol edilir, varsa listeden çıkarılır.

Örnek E-posta

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))

Çıktı:

[1, 2, 3, 4, 5, 6]

ÖZET

  • Yinelenenleri listeden kaldırmak için yerleşik işlevi kullanabilirsiniz. set(). Uzmanlık alanı set() yönteminin özelliği, farklı öğeler döndürmesidir.
  • İçe aktararak verilen listeden kopyaları kaldırabilirsiniz OrderedDictfrom koleksiyonlar. Python2.7'den itibaren mevcuttur. OrderedDictdict farklı öğeleri anahtarın bulunduğu sıraya göre size geri döndürmeyle ilgilenir.
  • Kopyaları kaldırmak için öğeler listesinde dolaşacağımız bir for döngüsünden yararlanabilirsiniz.
  • Gibi bir yöntem unique() Numpy modülünden kopyalananları verilen listeden kaldırmamıza yardımcı olabilir.
  • Pandalar modülünde bir unique() Bize verilen listedeki benzersiz unsurları verecek olan yöntem.
  • Liste kavrama ve numaralandırma kombinasyonu, yinelenen öğeleri listeden kaldırmak için kullanılır. Enumerate, listedeki her öğeye sayaç içeren bir nesne döndürür.