Python Dilinde Python Sets Kullanımı
Python programlama dilinde, verileri etkili bir şekilde depolamak ve yönetmek için çeşitli yerleşik veri yapıları bulunmaktadır. Bu yapılardan biri olan set, benzersiz elemanlardan oluşan, sırasız ve değiştirilebilir bir koleksiyondur. set'ler, özellikle bir koleksiyondaki yinelenen değerleri kaldırmak, üyelik testleri yapmak veya iki set arasındaki matematiksel küme işlemlerini (birleşim, kesişim, fark vb.) gerçekleştirmek için son derece kullanışlıdır. Bu makale, Python set'lerinin temel kullanımını, sözdizimini ve pratik uygulamalarını detaylandıracaktır.
Sözdizimi
set'ler, süslü parantezler {} kullanılarak veya set() yapıcı fonksiyonu aracılığıyla oluşturulabilir. Boş bir set oluşturmak için set() fonksiyonu kullanılmalıdır, çünkü {} boş bir sözlük (dict) oluşturur.
Detaylı Açıklama
Bir set oluşturmanın iki ana yolu vardır:
Literaller Kullanarak: Virgülle ayrılmış elemanları süslü parantezler içine alarak bir
setoluşturabilirsiniz. Örnek:{"elma", "muz", "kiraz"}. Bu yöntem, başlangıçta elemanları olan birsetoluşturmak için idealdir.set()Yapıcı Fonksiyonunu Kullanarak: Bir iterable (örneğin, liste, tuple, string) birset'e dönüştürmek içinset()fonksiyonunu kullanabilirsiniz. Örnek:set(["elma", "muz"]). Boş birsetoluşturmak için yalnızcaset()kullanılmalıdır.{}kullanımı boş bir sözlük oluşturur.
set'lerin temel özellikleri şunlardır:
Benzersiz Elemanlar: Bir
setyalnızca benzersiz elemanlar içerebilir. Yinelenen elemanlar eklenmeye çalışıldığında,setbunları otomatik olarak görmezden gelir.Sırasız:
setelemanlarının belirli bir sırası yoktur. Her çalıştırmada elemanların sırası değişebilir ve indeksleme yoluyla elemanlara erişilemez.Değiştirilebilir (Mutable): Bir
setoluşturulduktan sonra eleman ekleyebilir veya silebilirsiniz. Ancakset'in kendisi değiştirilebilirken, elemanları hashable olmalıdır. Yani,setelemanları listeler veya başkaset'ler gibi değiştirilebilir nesneler olamaz.
Örnekler
1. set Oluşturma ve Yinelenen Elemanları Kaldırma:
# Süslü parantezlerle set oluşturma
meyveler = {"elma", "muz", "kiraz", "elma"}
print(f"Meyveler seti: {meyveler}")
# set() fonksiyonu ile liste üzerinden set oluşturma
sayilar_listesi = [1, 2, 2, 3, 4, 4, 5]
sayilar_seti = set(sayilar_listesi)
print(f"Sayılar seti: {sayilar_seti}")
# Boş set oluşturma
bos_set = set()
print(f"Boş set: {bos_set}")
# Hata: {} boş bir sözlük oluşturur
bos_sozluk = {}
print(f"Boş süslü parantez: {type(bos_sozluk)}")
2. set Elemanlarına Ekleme ve Silme:
renkler = {"kırmızı", "mavi"}
print(f"Orijinal renkler seti: {renkler}")
# add() metodu ile eleman ekleme
renkler.add("yeşil")
print(f"add() sonrası: {renkler}")
# Mevcut bir elemanı tekrar ekleme (değişiklik olmaz)
renkler.add("kırmızı")
print(f"Tekrar add() sonrası: {renkler}")
# update() metodu ile birden fazla eleman ekleme (iterable kullanarak)
renkler.update(["sarı", "mor", "mavi"])
print(f"update() sonrası: {renkler}")
# remove() metodu ile eleman silme (eleman yoksa KeyError verir)
renkler.remove("mavi")
print(f"remove() sonrası: {renkler}")
# discard() metodu ile eleman silme (eleman yoksa hata vermez)
renkler.discard("turuncu")
print(f"discard() sonrası (olmayan eleman): {renkler}")
# pop() metodu ile rastgele bir eleman silme ve döndürme
silinen_renk = renkler.pop()
print(f"pop() ile silinen: {silinen_renk}, Kalan renkler: {renkler}")
# clear() metodu ile tüm elemanları silme
renkler.clear()
print(f"clear() sonrası: {renkler}")
3. set Üzerinde Küme İşlemleri:
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# Birleşim (Union): | operatörü veya union() metodu
birlesim = set1 | set2
print(f"Birleşim: {birlesim}") # veya set1.union(set2)
# Kesişim (Intersection): & operatörü veya intersection() metodu
kesisim = set1 & set2
print(f"Kesişim: {kesisim}") # veya set1.intersection(set2)
# Fark (Difference): - operatörü veya difference() metodu
fark1 = set1 - set2 # set1'de olup set2'de olmayanlar
print(f"Set1 - Set2 farkı: {fark1}") # veya set1.difference(set2)
fark2 = set2 - set1 # set2'de olup set1'de olmayanlar
print(f"Set2 - Set1 farkı: {fark2}") # veya set2.difference(set1)
# Simetrik Fark (Symmetric Difference): ^ operatörü veya symmetric_difference() metodu
# Her iki sette de olup kesişimde olmayanlar
simetrik_fark = set1 ^ set2
print(f"Simetrik Fark: {simetrik_fark}") # veya set1.symmetric_difference(set2)
# Alt Küme (Subset) ve Üst Küme (Superset) Testleri
set_a = {1, 2}
set_b = {1, 2, 3, 4}
print(f"Set A, Set B'nin alt kümesi mi? {set_a.issubset(set_b)}")
print(f"Set B, Set A'nın üst kümesi mi? {set_b.issuperset(set_a)}")
4. set Üyelik Testi:
harfler = {'a', 'b', 'c'}
print(f"'a' harfler setinde mi? {'a' in harfler}")
print(f"'d' harfler setinde mi? {'d' in harfler}")
Önemli Notlar
Boş
setOluşturma: Boş birsetoluşturmak için mutlakaset()fonksiyonunu kullanın.{}boş bir sözlük oluşturur.Sırasız Yapı:
set'ler sırasızdır. Elemanların eklenme sırası korunmaz ve indeksleme (my_set[0]gibi) kullanılamaz.Değiştirilemez Elemanlar:
setelemanları hashable (değiştirilemez) olmalıdır. Bu nedenle,list'ler,dict'ler veya başkaset'ler doğrudan birset'in elemanı olamaz. Eğer değiştirilemez birset'e ihtiyacınız varsafrozensetkullanabilirsiniz.Performans:
set'ler, elemanların benzersizliğini kontrol etmek ve üyelik testleri (inoperatörü) için yüksek performans sunar, özellikle büyük veri kümelerinde.Kullanım Alanları: Tekrarlanan elemanları kaldırma, veri temizleme, iki koleksiyon arasındaki ortak veya farklı elemanları bulma gibi senaryolarda
set'ler oldukça etkilidir.
        
                
            
            
Yorum yap
Yorumlar