Son Dersler
Python Programlama Dili

Kümeler ve Sets Nedir? Python Küme Metotları Örnekleri

23 Nisan 2026 8 dk okuma Deniz Karay

Python programlama dilinde kümeler (sets), benzersiz elemanlardan oluşan, sırasız ve değiştirilebilir bir veri yapısıdır. Veri bilimi, algoritma geliştirme ve yazılım projelerinde verilerin tekilleştirilmesi ile karmaşık matematiksel işlemlerin optimize edilmesi için kümeler hayati bir rol oynar. Matematikteki küme mantığına dayanan bu yapı, özellikle büyük veri setleri içinde arama yaparken sunduğu yüksek performans ile bilinir.

🎯 Bu Derste Öğrenecekleriniz
  • Küme Kavramı: Python’da kümelerin temel mantığını ve diğer veri yapılarından farklarını öğreneceksiniz.
  • Küme Yönetimi: Yeni bir küme oluşturmayı, eleman eklemeyi ve mevcut elemanları güvenli şekilde silmeyi kavrayacaksınız.
  • Matematiksel Metotlar: Birleşim, kesişim ve fark gibi işlemleri Python metotları ile saniyeler içinde yapabileceksiniz.
  • Performans ve Optimizasyon: Kümelerin neden hızlı olduğunu ve hangi senaryolarda tercih edilmesi gerektiğini anlayacaksınız.
📌 Kısa ve Net Bilgiler
  • Benzersizlik: Bir küme içerisinde aynı eleman birden fazla kez bulunamaz.
  • Sırasızlık: Küme elemanlarının belirli bir indeksi yoktur, her çalıştırmada sıra değişebilir.
  • Değiştirilebilirlik: Kümeye eleman eklenebilir veya çıkarılabilir (Mutable).
  • Hız: Eleman varlığı kontrolü (membership testing) listelere göre çok daha hızlıdır.

Python’da Küme (Set) Nedir?

Python’da kümeler, matematikteki kümelerle neredeyse aynı prensiplere sahip koleksiyon tipleridir. Bir küme oluşturduğunuzda, bu yapının en belirgin özelliği her elemanın “tek” olmasıdır. Eğer bir listeyi kümeye dönüştürürseniz, Python otomatik olarak yinelenen tüm elemanları temizleyecektir.

Kümelerin bir diğer önemli özelliği ise indekslenemez olmalarıdır. Yani bir listenin ilk elemanına ulaşmak için kullandığınız liste[0] gibi bir ifade kümelerde geçerli değildir. Bu durum, kümelerin arka planda “hashing” (karma) adı verilen bir mekanizma ile saklanmasından kaynaklanır. Bu mekanizma, bir elemanın küme içinde olup olmadığını kontrol etmeyi inanılmaz derecede hızlandırır.

ℹ️ Bilgi: Kümeler sırasız olduğu için, elemanların eklenme sırasını korumazlar. Eğer sıralı ve benzersiz bir yapıya ihtiyacınız varsa, Python 3.7+ sürümlerinde sözlük anahtarlarını veya harici kütüphaneleri kullanmanız gerekebilir.

Küme Oluşturma ve Temel Kurallar

Python’da bir küme oluşturmak için iki ana yöntem vardır: süslü parantez {} kullanmak veya set() fonksiyonundan yararlanmak. Ancak burada yeni başlayanların sıkça yaptığı bir hata mevcuttur. Boş bir küme oluşturmak istediğinizde {} kullanırsanız, Python bunu bir sözlük (dictionary) olarak algılayacaktır.

📖 Örnek: Küme Tanımlama

Doğru Yöntem:
meyveler = {"elma", "armut", "muz"}
Boş Küme Oluşturma:
bos_kume = set() (Bu doğrudur)
yanlis_bos_kume = {} (Bu bir sözlük oluşturur!)

Kümeler içerisine sadece “hashable” yani değiştirilemez (immutable) veri tiplerini alabilirler. Örneğin bir kümenin içine bir tam sayı, bir metin (string) veya bir demet (tuple) ekleyebilirsiniz; ancak bir listeyi veya başka bir kümeyi doğrudan bir kümenin elemanı yapamazsınız.

⚠️ Dikkat: Kümeler değiştirilebilir bir yapıdadır ancak içindeki elemanlar mutlaka değiştirilemez (immutable) türde olmalıdır. Bu nedenle bir küme içerisinde liste [1, 2] barındıramazsınız.

Temel Küme Metotları: Eleman Ekleme ve Çıkarma

Kümeler dinamik yapılardır, yani program akışı sırasında bu kümelere yeni veriler dahil edebilir veya mevcut verileri çıkarabilirsiniz. Python bu işlemler için oldukça kullanışlı metotlar sunar. En yaygın kullanılan metotları inceleyelim.

1. Eleman Ekleme: add() ve update()

Bir kümeye tek bir eleman eklemek için add() metodu kullanılır. Eğer birden fazla elemanı veya başka bir koleksiyonu (liste, demet gibi) kümeye dahil etmek istiyorsanız update() metodunu tercih etmelisiniz.

📖 Örnek: Ekleme İşlemleri

sayilar = {1, 2, 3}
sayilar.add(4) (Kümeye 4 eklenir)
sayilar.update([5, 6, 7]) (Listeyi kümeye yayarak ekler)

2. Eleman Silme: remove(), discard() ve pop()

Eleman silme işlemlerinde iki benzer metot vardır: remove() ve discard(). Aralarındaki fark hata yönetimi açısından kritiktir. remove() metodu ile olmayan bir elemanı silmeye çalışırsanız program hata verir ve durur. discard() ise eleman yoksa hiçbir şey yapmaz, programın akışını bozmaz.

💡 İpucu: Eğer silmek istediğiniz elemanın kümede olduğundan emin değilseniz ve programınızın çökmesini istemiyorsanız her zaman discard() metodunu kullanın.

pop() metodu ise kümeden rastgele bir eleman seçer, onu siler ve sildiği elemanı size döndürür. Kümeler sırasız olduğu için hangi elemanın silineceğini önceden kestirmek mümkün değildir.

Matematiksel Küme İşlemleri

Python’ı veri işleme konusunda güçlü kılan en önemli özelliklerden biri, matematiksel küme işlemlerini doğrudan desteklemesidir. İki veya daha fazla küme arasındaki ilişkileri bu metotlarla analiz edebilirsiniz.

İşlem Adı Metot Operatör
Birleşim union() |
Kesişim intersection() &
Fark difference()
Simetrik Fark symmetric_difference() ^

Birleşim (Union)

İki kümedeki tüm benzersiz elemanları bir araya getirir. Tekrarlanan elemanlar sadece bir kez yazılır. Örneğin, iki farklı sınıftaki öğrencilerin listesini birleştirip tek bir liste oluşturmak gibi düşünülebilir.

Kesişim (Intersection)

Sadece her iki kümede de ortak olarak bulunan elemanları döndürür. Veri analizinde iki farklı veri setindeki ortak noktaları bulmak için sıkça kullanılır.

Fark (Difference)

Birinci kümede olup ikinci kümede olmayan elemanları verir. Örneğin; “A kümesinde olup B kümesinde olmayanlar hangileridir?” sorusunun cevabıdır.

Simetrik Fark (Symmetric Difference)

İki kümenin birleşiminden kesişimlerinin çıkarılmış halidir. Yani sadece bir kümeye ait olan, ortak olmayan tüm elemanları getirir.

Küme Karşılaştırma Metotları

Kümelerin birbirleriyle olan hiyerarşik bağlarını kontrol etmek için mantıksal metotlar kullanılır. Bu metotlar True veya False şeklinde değer döndürürler.

  • issubset(): Bir kümenin tüm elemanları diğer kümede de var mı? (Alt küme mi?)
  • issuperset(): Bir küme, diğer kümenin tüm elemanlarını kapsıyor mu? (Üst küme mi?)
  • isdisjoint(): İki kümenin hiç ortak elemanı yok mu? (Ayrık kümeler mi?)
📖 Örnek: Alt Küme Kontrolü

a = {1, 2}
b = {1, 2, 3, 4}
print(a.issubset(b)) (Sonuç: True dönecektir)

Frozenset: Değiştirilemez Kümeler

Normal kümeler (set) değiştirilebilir (mutable) yapılardır. Ancak bazı durumlarda, bir kümenin içeriğinin program boyunca sabit kalmasını isteyebilirsiniz. İşte burada devreye frozenset girer. Frozenset, oluşturulduktan sonra eleman eklenemeyen veya silinemeyen bir küme türüdür.

Frozensetlerin en büyük avantajı, kendilerinin de “hashable” olmasıdır. Bu sayede bir frozenset’i başka bir kümenin içine eleman olarak ekleyebilir veya bir sözlükte (dictionary) anahtar (key) olarak kullanabilirsiniz.

Öğrendiklerinizi Pekiştirin

Python’da kümeleri anlamak, veri yapıları konusundaki hakimiyetinizi artıracaktır. Özellikle liste içindeki yinelenen verileri temizlemek istediğinizde list(set(liste_adi)) yöntemini kullanmak, en pratik Python ipuçlarından biridir. Şimdi öğrendiğiniz bu bilgileri küçük bir test ile kontrol edelim.

✏️ Kendinizi Test Edin
  1. Boş bir küme tanımlamak için hangi ifade kullanılır?
  2. remove() ve discard() metotları arasındaki temel fark nedir?
  3. İki kümenin sadece ortak olmayan elemanlarını almak için hangi metot kullanılmalıdır?
  4. Bir kümenin içine neden başka bir liste ekleyemeyiz?
  5. pop() metodu kümede nasıl bir davranış sergiler?
📝 Konu Özeti
  • Kümeler benzersiz, sırasız ve değiştirilebilir koleksiyonlardır.
  • set() fonksiyonu ile boş küme oluşturulur; {} ise sözlük oluşturur.
  • add() ve update() ile eleman eklenirken, remove() ve discard() ile silme yapılır.
  • union, intersection ve difference temel matematiksel operasyonlardır.
  • frozenset, kümenin değiştirilemez (immutable) versiyonudur.
  • Kümeler, büyük veri gruplarında eleman sorgulama işlemlerinde O(1) zaman karmaşıklığı ile en yüksek hızı sunar.

DersMerkezi.net.tr’nin yazarı, eğitim alanında yıllara dayanan deneyime sahip bir uzmandır ve öğrencilerin öğrenme sürecini desteklemeyi hedefler. Matematik, fen bilimleri, tarih, dil ve edebiyat başta olmak üzere birçok ders alanında içerik üretir ve konuları sade, anlaşılır ve adım adım rehberler halinde sunar.

Yorum Yap