Python 8- Set (Küme)- Veri Yapıları- Big Datacı

Veri tiplerinin sonuncusu olan set (küme) Python’da kullanılmaktadır. Matematikte kümelerle alakalı kullandığımız her şeyi Python kümelerde de kullanabilmekteyiz. Python’da kümeler kesişim, fark ve birleşim işlemini yapabilmektedir.

Set’in özellikleri ise

  • Sırasızdır.
  • Değerleri eşsizdir.
  • Değiştirilebilir.
  • Farklı veri tiplerini bir arada bulundurabilir.

Küme oluşturmanın iki yolu bulunmaktadır. İlki küme parantezi({}) içerisine alıp içerisinde bulunan verileri virgülle ayırarak yazabilirsiniz.

firstset={"Bigdatacı",5,1000,'b'}
print(firstset)

Kodun çıktısı ise

Diğer bir yöntem ise set() işlevi kullanılarak oluşturabilir.

secondset={"list","tuple","dictionary",3,300}
s=set(secondset)
print (s)

Kodun çıktısı

Oluşturulan verilerin tipinin küme olup olmadığını inceleyelim.

ex="Bigdatacı is writing code."
type(ex)
e=set(ex)
type(e)

Kodun çıktısı

İlk aşamada string olan veri daha sonradan set() fonksiyonu içerisine yazılarak tipi set’e çevrilmiştir.

Set’ler özellikleriyle diğer veri tiplerinden daha hızlı ve performanslı olmanızı sağlarlar.

Set İçerisinde Boş Küme Tanımlama

Küme içerisinde normal olarak boş küme tanımlarken yorumlayıcı tanımlanan set’i sözlük olarak algılamaktadır. Bundan dolayı küme boş küme kodu yazarken aşamalar:

emptyset={}
type(emptyset)

emptyset=set()
type(emptyset)

Kodun çıktısı

İlk emptyset’i oluşturulup tipine bakıldığında dictionary olduğu görüldü. 2. emptyset oluşturulduktan sonra tipine bakıldığında küme olduğu görülmüştür.

Set Elemanlarına Erişim

Python’da küme veri tipi sırasız olduğundan dolayı küme içerisinde bulunan herhangi bir elemana erişmemiz mümkün olmamaktadır. (İndeksleme yapılamamaktadır.)

Küme Elemanını Güncelleme

Kümeye bir eleman eklemek için add() fonksiyonu kullanılabilir.

set1={'a','b','c','d'}
set1.add("Bigdataci")
print(set1)

Kodun çıktısı

Çıktıda görüldüğü gibi eklenen eleman da kümenin içerisinde yer almaktadır.

Eğer kümeye yeni elemanlar ekleyecekseniz update() fonksiyonunu kullanmanız uygun olacaktır.

set1={'a','b','c','d'}
set2={'e','f','g','h'}
set1.update(set2)
print(set1)

Kodun çıktısı

Çıktıda görüldüğü gibi set1’e set2 elemanlarıyla beraber eklenmiştir.

Kümeden Eleman Çıkartma

Kümeden eleman çıkartma işlemi yapılırken remove() fonksiyonu kullanılır.

myset={"Hello","Bigdataci"}
s=set(myset)
print(s)
s.remove("Hello")
print(s)

Kodun çıktısı ise

Bir başka yöntem ise discard() fonksiyonunu kullanarak silebilirsiniz. Bu fonksiyonun remove()’dan farkı, olmayan bir elemanı silerken hata vermemesidir. Örnek

myset1={"Hello","Bigdataci",1,2,3}
s=set(myset1)
s.remove("Hello")
print(s)
s.discard(1)
print(s)

Kodun çıktısı

Eğer bir veri tipiyle kullanılan fonksiyonları öğrenmek istiyorsanız dir() fonksiyonunu kullanarak uygulanabilecek tüm fonksiyonlara ulaşabilirsiniz. Önceki örnekte set veri tipiyle alakalı olan fonksiyonlar

dir(s)

Set İşlemleri

Set işlemleri ile matematikteki kümelerde olduğu gibi fark, kesişim, birleşim işlemleri yapılabilir.

Difference(Fark İşlemi)

İki kümenin farkını almamıza işe yaramaktadır.

exset1=set([0,2,4,6,8])
exset2=set([1,2,3,4])
exset1.difference(exset2)
exset2.difference(exset1)

Kodun çıktısı

exset1.difference işleminde A/B yapıldı. exset2.difference işleminde ise B/A yapılmıştır.

Symmetric Difference

İki kümede de ortak olmayan elemanları bulmayı sağlar.

exset1=set([0,2,4,6,8])
exset2=set([1,2,3,4])
exset1.symmetric_difference(exset2)

Kodun çıktısı

Ortak olmayan elemanların 0,1,3,6,8 olduğu görülmüştür.

Intersection & Union

Intersection ile kümede bulunan ortak elemanları bulabilirsiniz.

exset1=set([0,2,4,6,8])
exset2=set([1,2,3,4])
exset1.intersection(exset2)
exset2.intersection(exset1)

Kodun çıktısı

Kümede ortak olan elemanlar 2 ve 4 olduğu kodlardan da görüldü.

Union ise birleşim işlemini gerçekleştirmektedir.

exset1=set([0,2,4,6,8])
exset2=set([1,2,3,4])
exset1.union(exset2)
unionset=exset1.union(exset2)
unionset

Kodun çıktısı

Kümelerde elemanların eşsiz olduğundan bahsedilmişti. Görüldüğü gibi elemanlar tekrarlamamaktadır.

Set Sorgu İşlemleri

Isdisjoint

Isdisjoint ile iki kümenin kesişiminin boş olup olmadığı sorgulanır.

set1=set([700,800,900])
set2=set([500,600,700,800,900])
set1.isdisjoint(set2)

Kodun çıktısı

Kodun çıktısı sonucunda kümelerin ortak elemanları olduğu için “Kümelerin kesişimi boş mu?” sorusunun yanıtı “False” olarak dönmüştür.

Issubset

Bir kümede yer alan bütün elemanların başka bir küme içerisinde yer alıp almadığı issubset ile öğrenilebilir.

set1=set([700,800,900])
set2=set([500,600,700,800,900])
set1.issubset(set2)

Kodun çıktısı

set1 kümesi set2 kümesinin içinde yer aldığı için “set1 kümesi set2 içerisinde yer alıyor mu?” sorusu “True” dönmüştür.

Bir Cevap Yazın