Sets – Kümeler

Python’da Sets konusunu hazırlayan Yüksek Lisans Öğrencim “Esma Kahraman”a teşekkürler. Bu bölümde biraz matematiksel bilgileri tazeleyeceğiz.

Matematik eğitimindeki kümeleri hatırlıyorsunuzdur.

Python’un yerleşik set tipi aşağıdaki özelliklere sahiptir:

  • Sets sırasızdır.
  • Set elemanları benzersizdir. Yinelenen ögelere izin verilmez.
  • Bir setin kendisi değiştirilebilir, ancak sette yer alan elemanlar değişmez tipte olmalıdır.

Bir set iki şekilde oluşturulabilir. Öncelikle yerleşik set() fonksiyona sahip bir set tanımlayabiliriz:

Listeler yinelenebilir, bu yüzden bir sırada iletilebilir. list(s) karakterlerin bir listesini oluşturduğunu görmüştük. Benzer şekilde, set(s) aşağıdaki karakter kümesini oluşturur:

Bir set boş olabilir. Boş kümeyi süslü parantezle tanımlarsak onu bir dictionary olarak görür. Bu yüzden boş bir set tanımlayacaksak normal parantez ile tanımlamalıyız:

Boş bir set boolean değer olarak false döner:

Bu set elemanlarının değişmez olması gerektiğini unutmayın. Örneğin, bir kümeye bir tuple dahil olabilir:

1. Set İçin Boyut ve Üyelik

len() fonksiyonu set boyutunu bulmak için kullanılabilir. Ayrıca in ve not in fonksiyonları belirtilen üyenin o sette bulunup bulunmadığının kontrolü için kullanılabilir.

2. Operatörler ve Yöntemler

Matematikteki küme fonksiyonları Phyton’da da mevcuttur. Birleşim kümesi için and (|) yapısı kullanılır. Kümelerde birleşim işlemi yapılırken aynı öğeler bir kez yazılır.

Set birleştirme union() metodu ile de elde edilebilir . Yöntem kümelerden birinde çağrılır, diğeri de argüman olarak iletilir:

Arasında aslında ufak bir fark vardır. | aynı veri türlerini birleştirirken union farklı veri türlerini birleştirebilir. Örneğin bir tuple ile set’i birleştirme birleştirmesinde:

Aynı işlemi union ile yaparsak:

İkiden fazla set, operatör veya yöntemle belirtilebilir:

Ortaya çıkan set, belirtilen kümelerden herhangi birinde bulunan tüm öğeleri içerir.

Şimdi de kesişim kümesini hesaplayalım. Bunun için & operatörü veya intersection() yöntemi kullanılır:

Bir setin diğerinden farkını bulmak için (-) operatörü ya da difference() metodu kullanılabilir:

Simetrik farkı bulmak için (^) operatörü veya symmetric_difference() metodu kullanılabilir:

isdisjoint() metodu iki kümenin ortak bir öğeye sahip olup olmadığını belirler. Bu metoda karşılık gelen bir operatör yoktur.

issubset()bir kümenin diğerinin alt kümesi olup olmadığını belirler. Bu metotta bir kümenin kendisi bir alt kümesi olarak kabul edilir.

x1 < x2 bir kümenin diğerinin uygun bir alt kümesi olup olmadığını belirler. Uygun bir alt küme, bir alt kümeyle aynıdır, ancak kümeler aynı olamaz.

x1.issuperset(x2) ve x1 >= x2 bir kümenin diğerinin üst kümesi olup olmadığını belirler.

x1 > x2 bir kümenin bir diğerinin uygun bir üst kümesi olup olmadığını belirler.

x1.update(x2) ve x1 |= x2 olmayan elemanları ekler. x2 set olabilir.

add(‘eleman’) metodu kümeye yeni bir eleman ekler.

remove(‘eleman’) bir kümeden belirtilen elemanı çıkarır.

discard(‘eleman’) remove ile aynı işi yapar. Ancak belirtilen eleman kümede yoksa hata vermez.

pop() rastgele bir eleman siler.

clear() bir kümenin içini boşaltır.