Lesson 10
Setler
1. Bir set nedir
Python yer alan matematik setleri için bir veri yapısı eşdeğerdir. Çeşitli unsurlardan oluşabilir; bir kümedeki öğelerin sırası tanımsızdır. Bir kümenin elemanlarını ekleyebilir ve silebilir, kümenin elemanlarını yineleyebilir, kümelerdeki standart işlemleri gerçekleştirebilirsiniz (birlik, kesişme, fark). Bunun yanı sıra, bir elemanın bir kümeye ait olup olmadığını kontrol edebilirsiniz.
Öğelerin sıralı olarak saklandığı dizilerden farklı olarak, bir kümedeki öğelerin sırası tanımlanmamıştır (ayrıca, ayarlanan öğeler genellikle kümedeki görünüm sırasına göre depolanmaz; bu, bir elemanın daha hızlı bir kümeye ait olup olmadığını kontrol etmeyi sağlar. sadece kümenin tüm unsurlarını ele almaktan).
Herhangi bir değişmez veri tipi bir kümenin bir öğesi olabilir: bir sayı, bir dizi, bir tuple. Değişken (değiştirilebilir) veri tipleri kümenin öğeleri olamaz. Özellikle, liste bir kümenin (ama tuple kutunun) bir öğesi olamaz ve başka bir set bir kümenin bir öğesi olamaz. Değişmezlik gereksinimi, bilgisayarların bellekte kümeleri nasıl temsil ettiğinden yola çıkar.
2. Bir set nasıl tanımlanır
Bir kümeyi tüm öğeleri parantez içinde adlandırarak tanımlayabilirsiniz. Tek istisna, set()
işlevini kullanarak oluşturulabilen boş kümedir . Eğer set(..)
bir liste, bir string veya bir parametre olarak tuple varsa, elemanlarından oluşan bir set döndürecektir. Örneğin,
A = {1, 2, 3} A = set('qwerty') print(A)
çıktı olarak {'e', 'q', 'r', 't', 'w', 'y'}
yazdıracaktır.
Unsurların sırası önemsizdir. Örneğin, program
A = {1, 2, 3} B = {3, 2, 3, 1} print(A == B)
True
yazdırır, çünkü A
ve B
eşit kümelerdir.
Her eleman sete sadece bir kez girebilir. set('Hello')
dört öğenin setini döndürür: {'H', 'e', 'l', 'o'}
.
3. Elemanlarla işlemler
len
eleman sayısını len
fonksiyonunu kullanarak alabilirsiniz.
Ayrıca setin tüm unsurları adımlayabilirsiniz döngü kullanarak (tanımlanmamış bir sırayla!) for
:
primes = {2, 3, 5, 7, 11} for num in primes: print(num)
Bir eleman anahtar kelime kullanarak grubuna ait olup olmadığını kontrol edebilirsiniz in
gibi ifadeler: a in A
dönüş türü değerini bool
. Benzer şekilde, tersi işlem not in
. Sete bir eleman add
için yöntem add
:
A = {1, 2, 3} print(1 in A, 4 not in A) A.add(4)
Bir öğeyi bir kümeden kaldırmak için iki yöntem vardır: discard
ve remove
. Davranışları, yalnızca silinmiş öğenin kümede olmaması durumunda değişir. Bu durumda yöntem discard
hiçbir şey yapmaz ve yöntem KeyError
atar istisnasını remove
.
Son olarak, pop
bir rastgele elemanı setten çıkarır ve değerini döndürür. Küme boşsa, pop
, KeyError
istisnasını oluşturur.
Bir işlevi fonksiyon list
kullanarak list
.
4. Setler üzerindeki işlemler
Python'daki setlerde iyi bilinen işlemleri nasıl gerçekleştirirsiniz:
A | B A.union (B) | A ve B kümelerinin birleşimi olan bir kümeyi döndürür. |
A | = B A.update (B) | B kümesinin tüm öğelerini A kümesine ekler. |
A & B A.intersection (B) | A ve B kümelerinin kesiştiği bir seti döndürür. |
A & = B A.intersection_update (B) | Set içinde bırakır A dizi aittir sadece öğeler B . |
A - B A.difference (B) | Grubu farkı döndürür A ve B (elemanlar dahil A , ancak dahil değildir B ). |
A - = B A.difference_update (B) | B tüm elemanlarını A kümesinden A . |
A ^ B A.symmetric_difference (B) | A ve B kümelerinin simetrik farkını döndürür ( A veya B öğelerine ait olan öğeler, ancak her ikisini aynı anda ayarlamaz). |
A ^ = B A.symmetric_difference_update (B) | A ile A ve B kümelerinin simetrik farkını yazar. |
A <= B A.issubset (B) | A , B bir alt kümesi ise true değerini döndürür. |
A> = B A.issuperset (B) | B , A bir alt kümesi ise true değerini döndürür. |
A <B | A <= B and A != B eşdeğerdir |
A> B | A >= B and A != B eşdeğerdir |