set and frozenset Sınıfları
Python'daki set ve frozenset sınıfları, öğeleri sırasız bir şekilde saklayan ve her öğenin yalnızca bir kez bulunabildiği veri yapılarıdır.
Set (Küme): Setler, matematikteki kümeleri modelleyen bir veri yapısıdır. Tekil (unique) öğeleri saklarlar, yani aynı öğe bir sette yalnızca bir kez bulunabilir. Setler ayrıca değiştirilebilir (mutable) bir veri yapısıdır, bu da öğelerin sete eklenip çıkarılmasına izin verir. Setler süslü parantez { } veya set() fonksiyonu kullanılarak oluşturulur.
kume = {1, 2, 3, 'dört', 5.0} print(kume) # {1, 2, 3, 'dört', 5.0} print(type(kume)) # <class 'set'>
Setlere öğe eklemek veya bir öğeyi çıkarmak için add(), remove() veya discard() gibi metotlar kullanılabilir.
kume = {1, 2, 3} kume.add(4) # sete 4 ekler print(kume) # {1, 2, 3, 4} kume.remove(1) # setten 1'i çıkarır print(kume) # {2, 3, 4} # Bir liste veya tuple'dan bir set oluşturmak kume2 = set([1, 2, 2, 3, 4, 4, 4, 5, 6]) print(kume2) # {1, 2, 3, 4, 5, 6} - tekrarlanan değerler çıkarıldı
Ayrıca setler, birleşim, kesişim, fark ve simetrik fark gibi kümeler arası işlemleri destekler.
Setlerle ilgili bazı temel işlemler:
Öğe Ekleme ve Çıkarma: Setlere add() metodu kullanılarak yeni öğeler ekleyebiliriz. Bir setten bir öğeyi çıkarmak için remove() veya discard() metodu kullanılır. Fark, remove() metodunun öğe sette bulunmazsa bir hata atmasına rağmen, discard() metodunun bir hata atmayacağıdır.
kume = {1, 2, 3} kume.add(4) print(kume) # {1, 2, 3, 4} kume.remove(1) print(kume) # {2, 3, 4} kume.discard(2) print(kume) # {3, 4}
Set Operasyonları: Matematikteki kümelerle benzer şekilde, Python setleri de birleşim (union), kesişim (intersection), fark (difference) ve simetrik fark (symmetric_difference) gibi set operasyonlarını destekler.
A = {1, 2, 3, 4} B = {3, 4, 5, 6} # Birleşim print(A.union(B)) # {1, 2, 3, 4, 5, 6} # Kesişim print(A.intersection(B)) # {3, 4} # Fark (A'nın B'den farkı) print(A.difference(B)) # {1, 2} # Simetrik Fark print(A.symmetric_difference(B)) # {1, 2, 5, 6}
Üyelik Testi: in anahtar kelimesini kullanarak bir setin belirli bir öğeyi içerip içermediğini kontrol edebiliriz.
kume = {1, 2, 3, 4, 5} print(1 in kume) # True print(6 in kume) # False
Set Boyutu: Setteki öğe sayısını len() fonksiyonu ile bulabiliriz.
kume = {1, 2, 3, 4, 5} print(len(kume)) # 5
Frozenset:
Frozensetler, setlerin değiştirilemez (immutable) versiyonudur. Yani bir frozenset oluşturulduktan sonra içindeki öğeleri değiştiremezsiniz. Bu, frozensetlerin, örneğin bir sözlüğün (dictionary) anahtarı olarak kullanılmasını sağlar. Frozensetler frozenset() fonksiyonu kullanılarak oluşturulur.
donmus_kume = frozenset([1, 2, 3, 'dört', 5.0]) print(donmus_kume) # frozenset({1, 2, 3, 'dört', 5.0}) print(type(donmus_kume)) # <class 'frozenset'>
Bir frozenset'e öğe eklemek veya bir öğeyi çıkarmak mümkün değildir. Ancak, tıpkı normal setler gibi, frozensetler de birleşim, kesişim, fark ve simetrik fark gibi kümeler arası işlemleri destekler.
Set ve frozensetler, özellikle veri analizinde ve işlemlerinde, öğelerin benzersizliğini sağlamak veya kümeler arası işlemleri gerçekleştirmek için kullanılır.
Set Operatörleri:
| veya .union(): Setlerin birleşimini verir. Yani, her iki kümenin de öğelerini içeren bir set döndürür.
& veya .intersection(): Setlerin kesişimini verir. Yani, her iki kümenin de ortak öğelerini içeren bir set döndürür.
- veya .difference(): İlk setin ikinci setten farkını verir. Yani, ilk sette bulunan, ancak ikinci sette olmayan öğeleri içeren bir set döndürür.
^ veya .symmetric_difference(): Setlerin simetrik farkını verir. Yani, bir sette veya diğerinde (ancak her ikisinde birden değil) bulunan öğeleri içeren bir set döndürür.
Setlerde Karşılaştırma Operatörleri:
Setler üzerinde karşılaştırma operatörlerini kullanarak, iki setin eşitliğini (==) veya eşitsizliğini (!=) kontrol edebilirsiniz. Ayrıca, bir setin diğer bir setin alt kümesi (<, <=) veya üst kümesi (>, >=) olup olmadığını kontrol edebilirsiniz.
set1 = {1, 2, 3, 4} set2 = {1, 2, 3, 4} set3 = {1, 2} set4 = {1, 2, 3, 4, 5} print(set1 == set2) # True print(set1 != set3) # True print(set3 < set1) # True print(set1 < set4) # True
0 Comments
Recommended Comments
There are no comments to display.