/webodası
Python Dersleri

Python Dersleri #24: Küme Veri Tipi

Uzmoon · · 4 dk

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

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

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

Yazının tamamını ve yorumları sitede aç