Python, Yinelenenleri Listeden Kaldır

İçindekiler:

Anonim

Bir liste, farklı Python nesnelerini içeren, tamsayılar, kelimeler, değerler vb. Olabilen bir kaptır. Diğer programlama dillerindeki bir dizinin eşdeğeridir.

Dolayısıyla burada, belirli bir listeden kopyaları kaldırabileceğimiz farklı yollardan geçeceğiz.

Bu eğitimde şunları öğreneceksiniz:

  • Set kullanarak kopyaları listeden kaldırın
  • Geçici Listeyi kullanarak bir listeden Yinelenenleri Kaldır.
  • Dict'i kullanarak kopyaları listeden kaldırın
  • For-loop kullanarak yinelenenleri listeden kaldırın
  • Listeyi anlama özelliğini kullanarak yinelenenleri listeden kaldırın
  • Numpy unique () yöntemini kullanarak kopyaları listeden kaldırın.
  • Pandas yöntemlerini kullanarak yinelenenleri listeden kaldırın
  • Enumerate () ve liste anlama kullanarak kopyaları kaldırın

Set kullanarak kopyaları listeden kaldırın

Yinelenenleri bir listeden çıkarmak için yerleşik işlev kümesini () kullanabilirsiniz. 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 set () yerleşik işlevine verilmiştir. Daha sonra, aşağıdaki örnekte gösterildiği gibi list () yerleşik işlevi kullanılarak son liste görüntülenir.

Elde ettiğimiz çıktı, tüm yinelenen öğelerin ortadan kaldırıldığı farklı öğelerdir.

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]

Geçici Listeyi Kullanarak Bir Listeden Yinelenenleri Kaldır

Yinelenenleri belirli bir listeden kaldırmak için boş bir geçici listeden yararlanabilirsiniz. Bunun için, ilk önce, yinelenen listeyi gözden geçirmeniz ve benzersiz öğeleri geçici listeye eklemeniz gerekir. Daha sonra geçici liste ana listeye atanır.

İşte geçici liste 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_listprint("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]

Dict'i kullanarak kopyaları listeden kaldırın

Koleksiyonlardan OrderedDict'i içe aktararak verilen listeden kopyaları kaldırabiliriz. Python2.7'den itibaren mevcuttur. OrderedDict, anahtarın mevcut olduğu sırayla size farklı öğeleri iade etmekle ilgilenir.

Listeden benzersiz öğeleri almak için OrderedDict'te bir listeden yararlanalım ve fromkeys () yöntemini kullanalım.

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

from collections import OrderedDict

OrderedDict.fromkeys () yöntemini kullanarak yinelemeleri kaldırmak için bir örnek aşağıda verilmiştir.

from collections import OrderedDictmy_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']

Python 3.5+ sürümünden itibaren, listeden farklı öğeleri elde etmek için normal dict.fromkeys () 'i kullanabiliriz. Dict.fromkeys () yöntemleri benzersiz olan ve yinelenen değerlerden kurtulmaya yardımcı olan anahtarlar döndürür.

Benzersiz öğeleri vermek için bir listede dict.fromkeys () işlevinin çalışmasını gösteren bir örnek aşağıdaki gibidir:

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

For-loop kullanarak yinelenenleri listeden kaldırın

For döngüsünü kullanarak, kopyaları kaldırmak için öğe listesinin üzerinden geçeceğiz.

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

Bu nedenle, yinelenen öğe ile karşılaşıldığında, myFinallist dizisinde zaten mevcut olacak ve eklenmeyecektir. Şimdi aşağıdaki örnekte aynısını kontrol edelim:

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]

Listeyi anlama özelliğini kullanarak yinelenenleri listeden kaldırın

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

Yinelenenleri verilen listeden çıkarmak için liste anlayışından yararlanalım.

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]

Numpy unique () yöntemini kullanarak kopyaları listeden kaldırın.

Numpy modülündeki benzersiz () yöntemi, verilen listeden kopyayı kaldırmamıza yardımcı olabilir.

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

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

import numpy as np

Adım 2) Listenizi aşağıda gösterildiği gibi benzersiz bir yöntem içinde kopyalar ile kullanın. Çıktı, tolist () yöntemi kullanılarak bir liste biçimine geri dönüştürülür.

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

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

print(myFinalList)

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

import numpy as npmy_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]

Pandas yöntemlerini kullanarak yinelenenleri listeden kaldırın

Pandalar modülünün, bize verilen listedeki benzersiz öğeleri verecek benzersiz () bir yöntemi vardır.

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

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

import pandas as pd

Adım 2) Listenizi, aşağıda gösterildiği gibi unique () yöntemi içinde yinelenenlerle kullanın:

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

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

print(myFinalList)

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

import pandas as pdmy_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]

Enumerate () ve liste anlama kullanarak kopyaları kaldırın

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

Her elemanın listede olup olmadığı kontrol edilir ve varsa listeden kaldırılır.

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 bir listeden çıkarmak için yerleşik işlev kümesini () kullanabilirsiniz. Set () yönteminin özelliği, farklı öğeler döndürmesidir.
  • Koleksiyonlardan OrderedDict'i içe aktararak verilen listeden kopyaları kaldırabilirsiniz. Python2.7'den itibaren mevcuttur. OrderedDictdict, anahtarın mevcut olduğu sırayla size farklı öğeleri iade etmeye özen gösterir.
  • Yinelenenleri kaldırmak için öğe listesinin üzerinden geçeceğimiz bir döngüden yararlanabilirsiniz.
  • Numpy modülündeki benzersiz () yöntemi, verilen listeden kopyayı kaldırmamıza yardımcı olabilir.
  • Pandalar modülünün, bize verilen listedeki benzersiz öğeleri verecek benzersiz () bir yöntemi vardır.
  • Liste anlama ve numaralandırma kombinasyonu, yinelenen öğeleri listeden kaldırmak için kullanılır. Numaralandırma, listedeki her öğeye bir sayaç içeren bir nesne döndürür.