Python ile “Set” (Küme) Kullanımı

Python programlama dilinde “set” (kümeler), gömülü halde bulunan “List“, “Tuple” ve “Dictionary” ile beraber verileri depolamak için kullanılan dört koleksiyon tipinden biridir. Biz bu yazımızda, Python’daki kümelerin, yani “set” veri tipinin ne olduğunu, nasıl oluşturulup kullanıldığını adım adım inceleyeceğiz.

Python’da “Set”

Python’da “set“, benzersiz elemanların sırasız bir şekilde oluşturduğu koleksiyon yapısıdır. “List” ve “tuple” koleksiyon yapılarından farklı olarak indekslenemezler. Bu da onları, sahip oldukları elemanların sıralı bir şekilde dizilmesini önler. Haliyle, hangi elemanın hangi sırada olduğu asla bilinemez. Zaten bu tanım, matematikteki kümelere ait bir özellik olup çalışma mantığını buradan almıştır. Zira matematik derslerinde öğrendiğimiz üzere, kümeler aynı elemandan sadece bir tane bulunabilir.

Python’da “set” koleksiyonunu tanımlamak için küme parantezlerinden ({}) yararlanırız. Her bir eleman birbirlerinden virgül (,) ile ayrılır.

Farklı meyve isimlerini “set” koleksiyonu içinde saklamak istediğimizi düşünelim. Bu örneği aşağıdaki gibi yazabiliriz:

Bir “set” oluşturduğumuzda, içine yazılan elemanların sırası belirli değildir ve bu sıra her çalıştırdığımızda değişebilmektedir. Bunun nedeni ise iç yapısının tasarımıyla ilgilidir; çünkü set’lerin ana amacı elemanların hızlı bir şekilde aranabilmesi ve eşsiz olmasıdır, sıralı olması değil.

Haliyle “set” içerisindeki bir elemana indeksle ulaşmaya çalıştığımızda TypeError hatası alırız. Yani aşağıdaki gibi bir kod kullanımı hatalı olacaktır:

Eğer “set” içerisinde bir elemanın olup olmadığını kontrol etmek istersek in anahtar kelimesinden faydalanırız. Bakınız:

Bu kod, “elma”nın meyveler set’inde olup olmadığını kontrol eder ve eğer varsa ekrana bir mesaj yazdırır. “Peki hangi durumlarda kullanabiliriz?” Şöyle bir senaryo ortamında “set” yapısını kullanmak oldukça faydalı olacaktır:

Diyelim ki, bir etkinlik düzenliyorsunuz ve katılmak isteyen kişilerin e-posta adreslerini topluyorsunuz. İki ayrı kaynak üzerinden e-posta adresleri topladınız ve bu e-posta adreslerini birleştirip tek bir davetiye listesi oluşturmak istiyorsunuz. Ancak bazı kişiler her iki kaynaktan da başvuru yapmış olabilir. Bu durumda, tekrar eden e-posta adreslerini tek bir defa listelemek istersiniz.

“Set” kullanarak, tekrar eden öğeleri hızlı bir şekilde filtreleyebilir ve bu tip işlemleri kolaylıkla gerçekleştirebilirsiniz.

Aşağıdaki tabloda list, tuple ve set arasındaki farkları gösteren özellikler derlenmiştir. Bakınız:

ÖzellikListTupleSet
Tanımlama[ ]( ){ }
SıralıEvetEvetHayır
DeğiştirilebilirEvetHayırEvet (ama set içindeki tek bir elemanı doğrudan değiştiremezsiniz)
Eleman TekrarıEvetEvetHayır
Index ErişimiEvetEvetHayır

“Set” Tipi Koleksiyonlara Nesne Eklemek

Python’da “set” tipi koleksiyonlara eleman eklemek için add() metodu kullanılabilir. Eğer birden fazla eleman eklemek istenirse update([ ]) metodundan faydalanılır:

Python’da “Set” Birleştirmek

Python’da “set” koleksiyonlarını birleştirmek mümkündür. Bu işlemleri gerçekleştirmek için aşağıdaki yöntemlerden biri kullanılır:

  • union() metodu veya | işareti: İki set’in birleşimini döndürür, ancak orijinal set’leri değiştirmez.
  • update() metodu veya |= işareti: İlk set’i, diğer set ile birleştirerek günceller.

Bu yöntemlerle iki set’i birleştirebilirsiniz. Ancak unutulmamalıdır ki set’ler benzersiz öğelere sahip olduğu için birleştirme işlemi sonucunda tekrar eden öğeler sadece bir defa yer alır.

Python “Set” Metotları

MetotGörevi
add()Kümeye bir eleman ekler
clear()Kümedeki tüm öğeleri siler
copy()Setin bir kopyasını döndürür
difference()İki veya daha fazla küme arasındaki farkı içeren bir küme döndürür
difference_update()Bu kümedeki, ayrıca belirtilen başka bir kümeye dahil olan elamanı kaldırır
discard()Belirtilen elemanı kaldırır
intersection()Diğer iki kümenin kesişimi olan bir küme döndürür
intersection_update()Bu setteki, belirtilen diğer set(ler)de bulunmayan elamanı kaldırır.
isdisjoint()İki kümenin kesişimi olup olmadığını döndürür
issubset()Başka bir kümenin bu kümeyi içerip içermediğini döndürür
issuperset()Bu kümenin başka bir küme içerip içermediğini döndürür
pop()Kümeden bir elemanı kaldırır
remove()Belirtilen elemanı kaldırır
symmetric_difference()İki kümenin simetrik farklarına sahip bir küme döndürür
symmetric_difference_update()bu kümeden ve diğerinden simetrik farkları ekler
union()Kümelerin birleşimini içeren bir küme döndürür
update()Kümelerin elemanlarını günceller
Python Set Metotları

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu