Kümeler

Matematikte küme (veya küme teorisi) diye bir şey vardır. Belki onları bir matematik dersinde bile çalışmışsındır. Hatta Venn şemalarına aşina olabilirsiniz.
Uygulamada, bir küme, öğeler veya üyeler olarak adlandırılan, iyi tanımlanmış bireysel nesneler kümesi olarak düşünülebilir.
Nesneleri bir kümede gruplandırmak programlamada yararlı olabilir ve Python bize yerleşik set tipini sağlar.

Kümeler (tür küme), üzerlerinde gerçekleştirilebilecek benzersiz işlemler açısından diğer nesne türlerinden farklıdır.

Python'daki yerleşik tip set aşağıdaki özelliklere sahiptir:
    Bir kümenin
  • öğeleri sırasızdır (yani, aynı öğeleri içeriyorsa iki küme eşdeğerdir). Kümenin öğeleri sırayla değil, bir öğenin bir kümeye ait olup olmadığını hızlı bir şekilde belirlemenizi sağlayan belirli algoritmalara göre saklanır (tüm öğeleri saymadan);
  • küme öğeleri benzersizdir. Yinelenen öğelere izin verilmez;
  • kümeler değişkendir (örneğin, bir kümeye bir öğe ekleyebilirsiniz), ancak kümenin içindeki öğelerin kendileri değişmez olmalıdır (sayılar, dizeler, demetler). Bir listeyi veya başka bir kümeyi bir kümenin öğesi yapamazsınız;

 

Set oluştur
1 yol

Kümedeki öğeleri süslü parantezler içinde tek tek sıralayın.

x = {"okul", "öğretmen", "sınıf", öğrenci}
 

2 yönlü 
set() yerleşik işlevini kullanın. x = ayarla()    # boş küme list_name = ["Andry", "Bob", "Caroline"] y = set(liste_adı)    # birden fazla  oluşturabilirsiniz;                       # yinelenebilir herhangi bir nesneden z = set(["Andry", "Bob", "Caroline"])     # {'Bob', 'Caroline', 'Andry'} k = set(("Andry", "Bob", "Caroline"))     # {'Bob', 'Caroline', 'Andry'} s = "s dizisi" m = küme(ler)    # {'i', 't', 'g', 'r', & #39;s', ' '} -                # Dikkat edin!                # öğelerin sırası herhangi biri olabilir,               # elemanlar tekrarlanmıyor n = {42, 'foo', 3.14159, Yok, (1, 2, 3)}    # öğe içinde                                                # farklı türde olabilir  
Çıktıyı ayarla
Kümenin öğeleri, eklendikleri sırayla değil, gelişigüzel bir sırada görüntülenir. z = set(["Andry", "Bob", "Caroline"])  print(z)     # {'Bob', 'Caroline', 'Andry'} yazdır(*z)    # Bob Andry Caroline

Kümelerle çalışma yöntemleri


Kümedeki öğe sayısı
len() yöntemi, kümedeki öğe sayısını döndürür. k = {42, 'foo', 3.14159, Yok, (1, 2, 3)}  yazdır(len(k))   #5

 

Bir öğenin bir kümede olup olmadığını belirleme (üyelik içinde)
k = {42, 'foo', 3.14159, Yok, (1, 2, 3)}  yazdır(42 inç)    # Doğru print(2 ink)     # Yanlış
Bir kümede yer alan öğelerin değişmez bir türde olması gerekse de, kümelerin kendileri değiştirilebilir. 

 

Ayarlanacak bir öğe ekleme
x.add(<elem>)
 x kümesine, değişmez tek nesne olması gereken <elem> ekler.

 

Bir kümeden öğe çıkarma
1) x.remove(<elem>)
<elem> , x kümesinden kaldırıldı. <elem> x içinde değilse Python bir istisna (hata) atar.

2) x.discard(<elem>)
aynısı siler, ancak kümede bir öğe olmaması durumunda bir istisna oluşturmaz.

3) x.pop()
kümeden rastgele bir öğeyi kaldırır ve döndürür. Küme başlangıçta boşsa, bir istisna (hata) oluşur.

4) x.clear()
kümeden tüm öğeleri kaldırır (kümeyi temizler).

Sıralama ayarlansın mı?

Bildiğimiz gibi, kümedeki elemanların sırası dikkate alınmaz. Python 3'te kümeleri sıralama hakkında konuşmak mantıklı mı?! (Bu yüzden başlıkta soru işareti var)

Bir kümedeki bir öğeyi hızlı bir şekilde bulmak için, bunların bellekte sıralı bir biçimde saklanması tercih edilir.

Bazı örneklere bakalım. Aynı kümedeki farklı veri türlerindeki öğelere ne olur? Bu tür öğeler sıralanmamalıdır. Öğeleri print() komutunu kullanarak yazdırırsak, çıktıları şu şekilde olur:

a = {0, 1, 12, 'b', 'ab', 3, 2, 'a'} print(a) # {0, 1, 2, 3, 'a', 12, 'b', 'ab'} Bu durumda sıralanmamış değerler görüntülenir. Başlatmayı tekrarlarsanız, çıkış sırası farklı olabilir. Ancak bu, yalnızca farklı türdeki öğeler karıştırılırsa olur.

Bir türdeki verileri görüntülemeye çalışalım (örneğin, yalnızca sayılar): bir = {0, 1, 12, 3, 2} print(a) # {0, 1, 2, 3, 12} Tüm öğeler sırayla görüntülenir. Bir listeye dönüştürmeye çalışalım: bir = {0, 1, 12, 3, 2} b = liste(a) yazdır(b) # [0, 1, 2, 3, 12] Benzer şekilde, artan sırada sıralanan öğeler de listeye yazılmıştır.

Aynı türdeyse, öğelerin bellekte sıralı bir biçimde depolandığı ortaya çıktı. Ancak buna güvenmemek daha iyidir, Python algoritmaları değişebilir.

Bir kümeden sıralanmış bir liste almanız gerekiyorsa, sıralama (< code>sorted) işlevinden emin olmak için ). Öğeler tam olarak sıralanacaktır. Kodunuz başkaları tarafından anlaşılır olacaktır.