# Python Dersleri #24: Küme Veri Tipi

Kaynak: https://webodasi.com/python-dersleri-24-kume-veri-tipi/
Yazar: Uzmoon
Yayın: 2026-11-12
Güncelleme: 2026-11-12

> Bu ders Python'da küme (set) veri tipini tanıtır: benzersiz, sırasız elemanlardan oluşan kümelerin oluşturulması, eleman ekleme/çıkarma yöntemleri ve temel özellikler.

## Bu Dersin Amacı

 

Python'da benzersiz elemanlardan oluşan, sırasız ve değiştirilebilir bir koleksiyon olan küme (set) veri tipini oluşturmayı, eleman ekleme ve çıkarma yöntemlerini öğrenmek.

 

## Küme (Set) Nedir?

 

Küme, matematikteki küme kavramına dayanan,  **benzersiz**  (tekrar etmeyen) elemanlardan oluşan,  **sırasız**  (unordered) ve  **değiştirilebilir**  (mutable) bir veri yapısıdır. Listelerden farklı olarak indeksleme desteklemez; bir elemana konumuyla erişemezsiniz. Kümeler, üyelik testleri, tekrar eden verileri temizleme ve matematiksel küme işlemleri (birleşim, kesişim, fark) için idealdir.

 

## Küme Oluşturma

 

Küme iki yolla oluşturulur: süslü parantez `{}` ile veya `set()` yapıcı fonksiyonu ile. Boş küme oluşturmak için `set()` kullanmalısınız; `{}` boş sözlük oluşturur.

 

```
# Süslü parantez ile küme oluşturma
meyveler = {"elma", "armut", "muz", "elma"}  # Tekrar eden 'elma' tek kez kalır
print(meyveler)  # Çıktı sırası değişebilir: {'muz', 'elma', 'armut'}

# set() fonksiyonu ile küme oluşturma
harfler = set("merhaba")  # String karakterlerden küme
print(harfler)  # {'a', 'b', 'e', 'h', 'm', 'r'}

# Boş küme
bos_kume = set()
print(type(bos_kume))  # <class 'set'>

# Yanlış: {} boş sözlük oluşturur
yanlis = {}
print(type(yanlis))  # <class 'dict'>
```

 

## Eleman Ekleme ve Güncelleme

 

Kümeler değiştirilebilir olduğu için eleman eklenebilir. `add()` tek eleman, `update()` ise yinelebilir (iterable) bir yapıdan birden fazla eleman ekler.

 

```
sayilar = {1, 2, 3}

# Tek eleman ekleme
sayilar.add(4)
print(sayilar)  # {1, 2, 3, 4}

# Aynı elemanı tekrar eklemek hiçbir şey yapmaz
sayilar.add(2)
print(sayilar)  # {1, 2, 3, 4} (değişmez)

# Birden fazla eleman ekleme (liste, tuple, string, başka küme vb.)
sayilar.update([5, 6, 7])
print(sayilar)  # {1, 2, 3, 4, 5, 6, 7}

sayilar.update((8, 9), {10, 11})  # Birden fazla iterable
print(sayilar)  # {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
```

 

## Eleman Çıkarma

 

Eleman çıkarmak için üç yöntem vardır: `remove()`, `discard()` ve `pop()`. `remove()` eleman yoksa hata verir, `discard()` sessizce devam eder. `pop()` rastgele bir elemanı çıkarıp döndürür (küme boşsa hata verir).

 

```
isimler = {"Ali", "Ayşe", "Veli", "Zeynep"}

# remove(): eleman yoksa KeyError
isimler.remove("Veli")
print(isimler)  # {'Ali', 'Ayşe', 'Zeynep'}

# isimler.remove("Mehmet")  # KeyError: 'Mehmet'

# discard(): eleman yoksa hata vermez
isimler.discard("Mehmet")  # Sessizce geçer
print(isimler)  # {'Ali', 'Ayşe', 'Zeynep'}

# pop(): rastgele eleman çıkarır ve döndürür
cikarilan = isimler.pop()
print(f"Çıkarılan: {cikarilan}")  # Örn: Çıkarılan: Ali
print(isimler)  # Kalan: {'Ayşe', 'Zeynep'}

# Tüm elemanları temizleme
isimler.clear()
print(isimler)  # set()
```

 

## Küme Özellikleri ve Sık Kullanılan İşlemler

 

- **Benzersizlik:** Aynı değerden birden fazla olamaz.
- **Sırasızlık:** Elemanlar herhangi bir sırada saklanır; indeksleme yoktur.
- **Değiştirilebilirlik:** Eleman eklenip çıkarılabilir ama elemanlar değiştirilemez (immutable olmalı: sayı, string, tuple). Liste veya sözlük küme elemanı olamaz.
- **Üyelik testi:** `in` operatörü ile hızlı kontrol.
- **Uzunluk:** `len()` fonksiyonu ile eleman sayısı.

 

```
ogrenciler = {"Ahmet", "Elif", "Can", "Deniz"}

# Üyelik testi
print("Can" in ogrenciler)      # True
print("Burak" not in ogrenciler) # True

# Eleman sayısı
print(len(ogrenciler))  # 4

# Listeyi kümeye çevirerek tekrarları temizleme
sayilar_list = [1, 2, 2, 3, 3, 3, 4]
benzersiz = set(sayilar_list)
print(benzersiz)  # {1, 2, 3, 4}

# Küme elemanları üzerinde döngü
for ogrenci in ogrenciler:
    print(ogrenci)
# Çıktı sırası rastgeledir
```

 

## Sık Yapılan Hatalar

 

- Boş küme oluşturmak için `{}` kullanmak; bu boş sözlük oluşturur. Doğrusu `set()`.
- Küme elemanına indeksle erişmeye çalışmak (`kume[0]`); kümeler sırasız olduğu için indeksleme desteklemez.
- Değiştirilebilir (mutable) nesneleri (liste, sözlük, başka küme) küme elemanı yapmaya çalışmak; `TypeError` alırsınız. Tuple kullanılabilir.
- `remove()` ile olmayan elemanı silmeye çalışıp `KeyError` almak; bunun yerine `discard()` kullanın.
- Kümenin sıralı olduğunu varsayıp belirli bir sırayla çıktı beklemek; kümeler sırasızdır, sıralı çıktı için `sorted(kume)` kullanın.

 

## Alıştırma

 

Aşağıdaki listeden tekrar eden şehir isimlerini kaldırarak bir küme oluşturun. Ardından "Ankara" ve "İzmir" şehirlerini kümeye ekleyin. Son olarak "Bursa" şehrini kümeden çıkarın (kümede yoksa hata vermeden). Kümenin son halini yazdırın.

 

```
sehirler_listesi = ["İstanbul", "Ankara", "İzmir", "Bursa", "Antalya", "İstanbul", "Ankara"]
```

 

### Çözüm

 

```
sehirler_listesi = ["İstanbul", "Ankara", "İzmir", "Bursa", "Antalya", "İstanbul", "Ankara"]

# Listeyi kümeye çevir (tekrarlar otomatik kalkar)
sehirler_kume = set(sehirler_listesi)
print("Oluşturulan küme:", sehirler_kume)

# Ankara ve İzmir ekle (zaten varsa bir şey değişmez)
sehirler_kume.add("Ankara")
sehirler_kume.add("İzmir")
print("Ekleme sonrası:", sehirler_kume)

# Bursa'yı hata vermeden çıkar
sehirler_kume.discard("Bursa")
print("Son hali:", sehirler_kume)
```

 

## Özet

 

- Küme (`set`) benzersiz, sırasız ve değiştirilebilir bir koleksiyondur.
- `{}` veya `set()` ile oluşturulur; boş küme için `set()` şarttır.
- `add()` tek, `update()` çoklu eleman ekler; tekrar edenler göz ardı edilir.
- `remove()` hata verir, `discard()` sessizce geçer, `pop()` rastgele çıkarır.
- Kümeler indekslenemez; üyelik testi için `in`, boyut için `len()` kullanılır.
