DEV Community

Vebende Akademi
Vebende Akademi

Posted on

Python Set (Küme) Veri Yapısı: Sıfırdan İleri Seviye Kapsamlı Rehber

Python Set (Küme) Veri Yapısı: Sıfırdan İleri Seviye Kapsamlı Rehber

Python’da Set (Küme) veri yapısı, özellikle benzersiz veri tutma ve hızlı üyelik kontrolü gerektiren senaryolar için tasarlanmıştır.

Gerçek dünyada set mantığı şuralarda karşımıza çıkar:

  • Duplicate (tekrarlı) veri temizleme
  • Log analizi
  • Kullanıcı etkileşim filtreleme
  • Etiket (tag) sistemleri
  • Veri karşılaştırma
  • Matematiksel küme işlemleri (union, intersection)

Set, Python ekosisteminde performans odaklı en kritik veri yapılarından biridir.


Set Nedir?

Set, benzersiz (unique) elemanlardan oluşan, sırasız ve değiştirilebilir bir veri yapısıdır.

```python id="set1"
sayilar = {1, 2, 3, 4, 5}

print(sayilar)




---

# Set Özellikleri

Set:

* Sırasızdır
* Duplicate (tekrar) kabul etmez
* Mutable (değiştirilebilir)
* Indexlenemez
* Hash tabanlıdır → çok hızlıdır

---

# Set Oluşturma

## Temel Set



```python id="set2"
renkler = {"kırmızı", "mavi", "yeşil"}

print(renkler)
Enter fullscreen mode Exit fullscreen mode

Boş Set (ÖNEMLİ!)

Yanlış:

```python id="set3"
bos = {}

print(type(bos))




Çıktı:



```text id="set4"
<class 'dict'>
Enter fullscreen mode Exit fullscreen mode

Doğru:

```python id="set5"
bos = set()

print(type(bos))




---

# Duplicate Otomatik Silme



```python id="set6"
sayilar = {1, 2, 2, 3, 3, 3, 4}

print(sayilar)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

```text id="set7"
{1, 2, 3, 4}




---

# Set Elemanları Farklı Tipte Olabilir



```python id="set8"
veri = {1, "Python", 3.14, True}

print(veri)
Enter fullscreen mode Exit fullscreen mode

Set Elemanına Erişim Yok

```python id="set9"
sayilar = {10, 20, 30}

print(sayilar[0]) # HATA




Çıktı:



```text id="set10"
TypeError
Enter fullscreen mode Exit fullscreen mode

Set’e Eleman Ekleme

add()

```python id="set11"
sayilar = {1, 2, 3}

sayilar.add(4)

print(sayilar)




---

# Çoklu Eleman Ekleme

## update()



```python id="set12"
sayilar = {1, 2, 3}

sayilar.update([4, 5, 6])

print(sayilar)
Enter fullscreen mode Exit fullscreen mode

Eleman Silme

remove()

```python id="set13"
sayilar = {1, 2, 3}

sayilar.remove(2)

print(sayilar)




Hata riski vardır.

---

## discard()



```python id="set14"
sayilar = {1, 2, 3}

sayilar.discard(99)

print(sayilar)
Enter fullscreen mode Exit fullscreen mode

Hata vermez.


pop()

```python id="set15"
sayilar = {1, 2, 3, 4}

print(sayilar.pop())
print(sayilar)




---

## clear()



```python id="set16"
sayilar = {1, 2, 3}

sayilar.clear()

print(sayilar)
Enter fullscreen mode Exit fullscreen mode

Set Üyelik Kontrolü (En Güçlü Özellik)

```python id="set17"
sayilar = {1, 2, 3, 4, 5}

print(3 in sayilar)
print(10 in sayilar)




Çıktı:



```text id="set18"
True
False
Enter fullscreen mode Exit fullscreen mode

Set Uzunluğu

```python id="set19"
veri = {1, 2, 3, 4}

print(len(veri))




---

# Döngü ile Set Kullanımı



```python id="set20"
meyveler = {"elma", "armut", "muz"}

for m in meyveler:
    print(m)
Enter fullscreen mode Exit fullscreen mode

Set Matematiksel İşlemler

Set’in en güçlü tarafı burasıdır.


Union (Birleşim)

```python id="set21"
a = {1, 2, 3}
b = {3, 4, 5}

print(a | b)




Çıktı:



```text id="set22"
{1, 2, 3, 4, 5}
Enter fullscreen mode Exit fullscreen mode

union()

```python id="set23"
print(a.union(b))




---

# Intersection (Kesişim)



```python id="set24"
a = {1, 2, 3}
b = {2, 3, 4}

print(a & b)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

```text id="set25"
{2, 3}




---

# Difference (Fark)



```python id="set26"
a = {1, 2, 3}
b = {2, 3, 4}

print(a - b)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

```text id="set27"
{1}




---

# Symmetric Difference



```python id="set28"
a = {1, 2, 3}
b = {2, 3, 4}

print(a ^ b)
Enter fullscreen mode Exit fullscreen mode

Çıktı:

```text id="set29"
{1, 4}




---

# Subset & Superset



```python id="set30"
a = {1, 2}
b = {1, 2, 3}

print(a.issubset(b))
print(b.issuperset(a))
Enter fullscreen mode Exit fullscreen mode

Disjoint (Ortak eleman yok mu?)

```python id="set31"
a = {1, 2}
b = {3, 4}

print(a.isdisjoint(b))




---

# Set Comprehension



```python id="set32"
kareler = {x*x for x in range(10)}

print(kareler)
Enter fullscreen mode Exit fullscreen mode

Hands-On 1: Duplicate Temizleme

```python id="set33"
veri = [1, 2, 2, 3, 3, 4, 5, 5]

temiz = set(veri)

print(list(temiz))




---

# Hands-On 2: Kullanıcı Analizi



```python id="set34"
giris1 = {"Ali", "Ayşe", "Mehmet"}
giris2 = {"Mehmet", "Zeynep", "Ali"}

aktif = giris1 & giris2

print(aktif)
Enter fullscreen mode Exit fullscreen mode

Hands-On 3: Benzersiz Ürünler

```python id="set35"
satislar = [
"Laptop",
"Mouse",
"Laptop",
"Klavye",
"Mouse"
]

urunler = set(satislar)

print(urunler)




---

# Hands-On 4: Log Analizi



```python id="set36"
loglar = [
    "INFO",
    "ERROR",
    "INFO",
    "WARNING",
    "ERROR"
]

unique_logs = set(loglar)

print(unique_logs)
Enter fullscreen mode Exit fullscreen mode

Hands-On 5: Eksik Veri Tespiti

```python id="set37"
tum_kullanicilar = {"Ali", "Ayşe", "Mehmet", "Zeynep"}
aktif_kullanicilar = {"Ali", "Mehmet"}

pasif = tum_kullanicilar - aktif_kullanicilar

print(pasif)




---

# Hands-On 6: Etiket Sistemi



```python id="set38"
urun = {
    "ad": "Laptop",
    "tag": {"oyun", "performans", "ssd"}
}

urun["tag"].add("yeni")

print(urun)
Enter fullscreen mode Exit fullscreen mode

Set vs List vs Tuple

Özellik List Tuple Set
Sıralı
Değiştirilebilir
Duplicate
Index
Hızlı arama

Performans Avantajı

Set’in en güçlü yönü:

```python id="set39"
import time

veri = set(range(1000000))

start = time.time()
print(999999 in veri)
end = time.time()

print(end - start)




👉 O(1) arama performansı

---

# Python ve C# Karşılaştırma

## Python



```python id="set40"
a = {1, 2, 3}
b = {3, 4, 5}

print(a | b)
Enter fullscreen mode Exit fullscreen mode

C

```csharp id="set41"
HashSet a = new() { 1, 2, 3 };
HashSet b = new() { 3, 4, 5 };

a.UnionWith(b);




---

# Gerçek Hayat Kullanım Alanları

Set özellikle şuralarda kullanılır:

* Log deduplication
* Email list filtering
* API rate limiting
* Search indexing
* Recommendation systems
* Data cleaning pipelines

---

# İleri Seviye Örnek: Ziyaretçi Analizi



```python id="set42"
gun1 = {"user1", "user2", "user3"}
gun2 = {"user2", "user3", "user4"}
gun3 = {"user3", "user4", "user5"}

aktif = gun1 | gun2 | gun3
sadik = gun1 & gun2 & gun3

print("Aktif:", aktif)
print("Sadık:", sadik)
Enter fullscreen mode Exit fullscreen mode

Özet

Set veri yapısı Python’da:

  • Duplicate verileri temizlemek
  • Hızlı üyelik kontrolü yapmak
  • Matematiksel küme işlemleri yapmak
  • Veri analizi ve filtreleme yapmak

için vazgeçilmezdir.

İyi bir Python geliştiricisi:

  • Set operations (union, intersection, difference)
  • add / remove / discard farkları
  • Performans avantajlarını
  • Set comprehension
  • Real-world data filtering tekniklerini

çok iyi bilmelidir.

Set, özellikle veri analizi, büyük veri, backend sistemler ve log processing alanlarında kritik öneme sahiptir.

Top comments (0)