Resim

Python Setleri (Kümeler)

Python Setleri (Kümeler): Benzersiz ve Sırasız Koleksiyonlar

Set Nedir ve Neden Kullanılır?

Merhaba! Listeleri ve Tuple'ları gördük. Şimdi sıra, matematikteki kümeler kavramına karşılık gelen Setler (Kümeler) veri yapısında. Setler, veri koleksiyonu olarak listelere ve tuple'lara benzer, ancak iki çok önemli farkı vardır:

  1. Benzersizlik (Uniqueness): Bir Set, aynı öğeden yalnızca bir tane bulundurabilir. Tekrarlanan öğeler otomatik olarak atılır.

  2. Sırasızlık (Unordered): Öğeler eklenme sırasına göre saklanmaz. Setler rastgele bir sırayla listelenebilir.

Setler, genellikle veri temizleme (tekrar edenleri kaldırma) ve hızlı üyelik testi (bir öğenin koleksiyonda olup olmadığını kontrol etme) için idealdir.


1. Set Tanımlama ve Temel Özellikleri

Setler, öğelerin süslü parantezler ({}) içine virgülle ayrılarak yazılmasıyla oluşturulur.

a. Tanımlama Yöntemleri

  • Süslü Parantez ile:

    gecen_aylar = {"Ocak", "Şubat", "Ocak", "Mart"}#Tekrar eden 'Ocak' atılır
    print(gecen_aylar)
    # Çıktı (Sıra değişebilir): {'Mart', 'Ocak', 'Şubat'}
    
  • set() Fonksiyonu ile: Başka bir koleksiyonu (liste, tuple vb.) set'e dönüştürür.

    sayi_listesi = [1, 2, 2, 3, 4, 4]
    benzersiz_sayilar = set(sayi_listesi)
    print(benzersiz_sayilar)
    # Çıktı: {1, 2, 3, 4}
    

b. Boş Set Oluşturma Uyarısı

Boş bir Set oluşturmak için mutlaka set() fonksiyonu kullanılmalıdır. {} kullanımı, boş bir Sözlük (Dictionary) oluşturur.

set_degil = {}
bos_set = set()
print(type(set_degil)) # Çıktı: <class 'dict'>
print(type(bos_set))   # Çıktı: <class 'set'>

Kendiniz Deneyebilirsiniz:


2. Setlere Erişim ve Kısıtlamalar

Setler sırasız olduğu için, listelerden farklı olarak index numarası (dizinleme) ile tekil öğelere erişmek veya dilimleme (slicing) yapmak mümkün değildir ve hata verir.

  • Üyelik Testi: Bir öğenin sette olup olmadığını in operatörü ile hızlıca kontrol edebiliriz.

    etiketler = {"python", "veri", "analiz"}
    print("veri" in etiketler)    # Çıktı: True
    print("java" in etiketler)    # Çıktı: False
    

Kendiniz Deneyebilirsiniz:


3. Set Öğelerini Yönetme (Ekleme ve Silme)

Setler değiştirilebilir (mutable) bir koleksiyondur; yani öğe ekleyebilir veya silebilirsiniz.

  • add(öğe): Set'e tek bir öğe ekler. Eğer öğe zaten varsa hiçbir şey olmaz.

    s.add("yeni")

  • update(koleksiyon): Başka bir yinelenebilir yapıdaki (liste, tuple, başka bir set) birden fazla öğeyi set'e ekler.

    s.update(["c++", "java"])

  • remove(öğe): Belirtilen öğeyi set'ten siler. Öğe sette yoksa KeyError hatası verir.

    s.remove("python")

  • discard(öğe): Belirtilen öğeyi set'ten siler. Öğe sette yoksa hata vermez. (Daha güvenli yöntemdir.)

    s.discard("non-existent") # Hata vermez

  • pop(): Set'ten rastgele bir öğeyi siler ve sildiği öğeyi döndürür (Sırasız olduğu için hangi öğenin silineceği belli değildir).

    silinen = s.pop()

  • clear(): Set'teki tüm öğeleri siler ve seti boş hale getirir.

    s.clear()

Kendiniz Deneyebilirsiniz:


4. Set Operasyonları (Matematiksel Küme İşlemleri)

Setler, iki veya daha fazla küme arasındaki ilişkileri bulmak için matematiksel küme operatörlerini kullanır.

İşlemOperatörMetotAçıklama
Birleşim|.union()Her iki setteki tüm öğeler.
Kesişim&.intersection()Yalnızca her iki sette de ortak olan öğeler.
Fark-.difference()İlk sette olup, ikinci sette olmayan öğeler.
Simetrik Fark^.symmetric_difference()İki setten birinde olan ancak her ikisinde de olmayan öğeler (ortaklar hariç).
  • Örnek Kullanım:

    a = {1, 2, 3, 4}
    b = {3, 4, 5, 6}
    
    birlesim = a | b          # Çıktı: {1, 2, 3, 4, 5, 6}
    kesisim = a.intersection(b) # Çıktı: {3, 4}
    fark = a - b              # Çıktı: {1, 2}
    


5. Set Sorgulama Metotları

Bu metotlar, iki set arasındaki ilişkileri kontrol etmek için kullanılır ve sonuç olarak Boolean (True/False) döndürür.

  • issubset(diğer_set): Mevcut set, diğer setin alt kümesi midir? (Yani, mevcut setin tüm öğeleri diğer sette de var mı?)

  • issuperset(diğer_set): Mevcut set, diğer seti kapsıyor mu? (Yani, diğer setin tüm öğeleri mevcut sette de var mı?)

  • isdisjoint(diğer_set): İki setin hiç ortak öğesi yok mudur? (Ortak öğe yoksa True döndürür.)


Setlerin Kullanım Gücü

Setler, özellikle veri temizleme ve filtreleme işlemlerinde çok değerli araçlardır. Bir listedeki tekrarlanan öğeleri hızla kaldırmanın en kolay yolu, o listeyi bir sete dönüştürüp tekrar listeye çevirmektir. Ayrıca, büyük veri kümelerinde bir öğenin varlığını hızlıca kontrol etmek (üyelik testi) setlerle oldukça verimlidir.

🔥 Python Kariyerinizi Hemen Başlatın!

Hemen kursumuza kaydolun ve bu güçlü araçları kullanarak profesyonel Python geliştiricisi olma yolunda ilk adımı atın. Kursumuzdaki uygulamalı modüller, sizi sadece bir yazılımcı adayı değil, hazır bir profesyonel haline getirecek. Python Eğitimini Udemy platformunda bulabilirsiniz.

[ Python Eğitimi Sıfırdan İleri Seviye ]

Tıklayın ve Python Eğitimine Hemen Kaydolun!

Yorumlar

Bu blogdaki popüler yayınlar

Python random Modülü

Python print()

Yazılım Nedir?