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

⚡ Akıllı Özet

Yinelenenleri kaldırma Python Liste oluşturma işlemi, set(), dict.fromkeys(), döngüler, liste anlama ifadeleri ve NumPy ve Pandas'tan gelen kütüphane yöntemleri de dahil olmak üzere çeşitli yerleşik yaklaşımlarla yapılabilir; bunların her biri sıralamanın korunmasını hız ile dengelemeyi amaçlar.

  • 🔘 Yöntemi ayarla: `set()` fonksiyonu, birbirinden farklı öğeleri anında döndürür ancak listenin orijinal sırasını korumaz.
  • ☑️ Sıra korunmuştur: dict.fromkeys() ve OrderedDict, tekrarlanan kayıtları kaldırırken, keeps'i korur.ping İlk görülen ekleme sırası.
  • Manuel kontrol: Üyelik kontrolü içeren bir for döngüsü veya liste anlama yapısı, düzeni korur ve okunabilirliği sağlar.
  • 🧪 Kütüphane yöntemleri: NumPy'nin unique() ve Pandas'ın unique() fonksiyonları, verileri yinelenenlerden arındırır ve tolist() metodu aracılığıyla liste çıktısı döndürür.
  • Karma oluşturma sınırı: Küme ve sözlük anahtarları, karma işlemi yapılabilen öğeler gerektirir; bu nedenle listeler veya sözlükler döngü tabanlı bir yaklaşıma ihtiyaç duyar.
  • 🤖 Yapay zeka iş akışları: Makine öğrenimi işlem hatları, önyargıyı ve veri sızıntısını önlemek için Pandas'ın drop_duplicates() fonksiyonunu kullanarak eğitim verilerini yinelenen verilerden arındırır.

Bir listeden yinelenen öğeleri kaldırma 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.

Bu yazıda, verilen bir listeden yinelenen öğeleri kaldırmanın farklı yollarını inceleyeceğiz. Python.

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

Bir listeden yinelenen öğeleri kaldırmak için, yerleşik set() fonksiyonunu kullanabilirsiniz. set() yönteminin özelliği, benzersiz öğeleri döndürmesidir.

Elimizde [1,1,2,3,2,2,4,5,6,2,1] şeklinde bir liste var. Listede birçok tekrar eden eleman var ve bunları kaldırıp yalnızca benzersiz elemanları geri almamız gerekiyor. Liste, set() yerleşik fonksiyonuna veriliyor. Later Son liste, list() yerleşik fonksiyonu kullanılarak görüntülenir.

Elde ettiğimiz çıktı, tüm yinelenen öğelerin elendiği, birbirinden 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

Verilen bir listeden yinelenen öğeleri kaldırmak için boş bir geçici liste kullanabilirsiniz. Bunun için öncelikle yinelenen öğeleri içeren listeyi döngüye almanız ve benzersiz öğeleri geçici listeye eklemeniz gerekecektir. Later geçici liste ana listeye atanır.

Örnek E-posta

İşte geçici bir 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_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 listeden yinelenen öğeleri kaldırmak için, collections'tan OrderedDict'i içe aktarabiliriz. Bu, Python 2.7 ve sonrasında kullanılabilir. OrderedDict, anahtarın bulunduğu sırayla benzersiz öğeleri size döndürmeyi sağlar.

Şimdi bir liste kullanalım ve OrderedDict'te bulunan fromkeys() yöntemini kullanarak listedeki benzersiz öğeleri alalım.

OrderedDict.fromkeys() yöntemini kullanmak için, aşağıdaki gibi collections'tan OrderedDict'i içe aktarmanız gerekir:

from collections import OrderedDict

İşte OrderedDict.fromkeys() yöntemini kullanarak yinelenen kayıtları kaldırmaya yönelik bir örnek.

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

Başlangıç Python 3.5 ve üzeri sürümlerde, listeden benzersiz öğeleri almak için normal `dict.fromkeys()` yöntemini kullanabiliriz. `dict.fromkeys()` yöntemi benzersiz anahtarlar döndürür ve yinelenen değerlerden kurtulmaya yardımcı olur.

Aşağıda, `dict.fromkeys()` fonksiyonunun bir liste üzerinde benzersiz öğeleri nasıl verdiğini gösteren bir örnek yer almaktadır:

Ö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.

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

Dolayısıyla, aynı öğe tekrarlandığında, zaten myFinallist dizisinde mevcut olacağından eklenmeyecektir. Şimdi bunu aşağıdaki örnekte 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'nin unique() yöntemini kullanma

NumPy modülündeki unique() metodu, verilen listeden yinelenen öğeleri kaldırmamıza yardımcı olabilir.

NumPy ile çalışmak için öncelikle numpy modülünü içe aktarın:

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

import numpy as np

) 2 Adım Yinelenen öğeleri içeren listenizi unique() metodu içinde kullanın. Çıktı, tolist() metodu kullanılarak tekrar listeye dönüştürülür.

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

) 3 Adım Son olarak listeyi 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

Pandas modülü, bize verilen listedeki benzersiz öğeleri verecek benzersiz () yöntemine sahiptir.

Pandas modülüyle çalışmak için:

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

import pandas as pd

) 2 Adım Yinelenen öğeleri içeren listenizi unique() metodu içinde kullanın:

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

) 3 Adım Listeyi 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 `enumerate()` fonksiyonlarının kombinasyonunu kullanıyoruz. `enumerate`, listedeki her öğe için bir sayaç içeren bir nesne döndürür. Örneğin (0,1), (1,2) vb. Burada ilk değer indeksi, ikinci değer ise liste öğesini temsil eder.

Her bir öğenin listede olup olmadığı kontrol edilir ve varsa listeden kaldırı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]

SSS

Hayır. Küme sıralanmamış bir koleksiyondur, bu nedenle `set()` farklı bir sırada öğeler döndürebilir. Sırayı koruyarak yinelenenleri kaldırmak için `dict.fromkeys()` kullanın veya yalnızca daha önce görülmemiş öğeleri ekleyen bir döngü kullanın.

Büyük listeler için, sıralama önemli olmadığında set() en hızlı yöntemdir çünkü üyelik kontrolleri O(1) karmaşıklığındadır. Sıralama önemli olduğunda ise list(dict.fromkeys(my_list)) neredeyse aynı hızdadır ve ilk görülen sırasını tek satırda korur.

`set()` ve `dict.fromkeys()` yöntemleri hashlenebilir öğelere ihtiyaç duyduğundan, listelerde veya sözlüklerde başarısız olurlar. Listeyi döngüye alıp daha önce görülmemiş öğeleri ekleyin veya her öğeyi geçici bir anahtar olarak bir demet veya JSON dizesine dönüştürün.

List(dict.fromkeys(my_list)) kullanın. Çünkü Python 3.7 sözlükleri ekleme sırasını korur, bu nedenle anahtarlar ilk görülen sırada kalır. Daha önceki sürümlerde, aynı sonucu elde etmek için collections.OrderedDict.fromkeys() yöntemini kullanın.

Hayır. set(), dict.fromkeys(), liste anlama yöntemleri ve NumPy veya Pandas'ın unique() yöntemleri yeni bir liste oluşturur ve kaynağı değiştirmez. Eğer üzerine yazmak istiyorsanız, sonucu aynı değişkene yeniden atayın.

Veriler zaten dizilerde veya bir Seride bulunuyorsa veya veri analizi sırasında `numpy.unique()` veya `pandas.unique()` kullanın. `numpy.unique()` değerleri sıralarken, `pandas.unique()` ilk görülen sırasını korur. Düz bir liste için `tolist()` işlevini çağırın.

Makine öğrenimi işlem hatları, tekrarlanan örneklerin modeli etkilememesi veya eğitim ve test kümeleri arasında sızıntı olmaması için eğitimden önce yinelenen satırları siler. Pandas'ın `drop_duplicates()` fonksiyonu, tablo halindeki veri kümelerini temizlemek için yaygın olarak kullanılan bir araçtır.

Evet. GitHub Copilot ve yapay zeka destekli asistanlar, bir yorumdan set(), dict.fromkeys() veya Pandas yineleme kaldırma kodu oluşturur, sıralamayı koruyan seçeneği önerir ve döngüleri yeniden düzenler; ancak yine de hashlenemeyen öğeler gibi uç durumları doğrulamanız gerekir.

Bu yazıyı şu şekilde özetleyin: