Python’daki kümeler, benzersiz ögelerin sırasız koleksiyonlarıdır. Bu, yinelenen değerlerin otomatik olarak ortadan kaldırıldığı ve ögeleri ekleme sırasının, nasıl saklandıklarını veya alındıklarını etkilemediği anlamına gelir. frozenset
türünü (değişmez) kullanmadığınız sürece kümeler varsayılan olarak değiştirilebilirdir (değiştirilebilir).
Kümeler, özellikle verimli üyelik testinin (bir ögenin var olup olmadığını kontrol etme), bir listeden yinelenenleri kaldırmanın ve birleşim, kesişim ve fark gibi küme işlemlerini gerçekleştirmenin gerektiği görevler için kullanışlıdır.
İçindekiler
- Küme Oluşturma
- Öge Ekleme ve Güncelleme
- Öge Kaldırma
- Küme İşlemleri
- Küme Yöntemleri
- Diğer Küme İşlemleri
- Kümeler ile Yerleşik Fonksiyonlar
- Frozensets (Donmuş Kümeler)
1. Küme Oluşturma
Kümeler, kıvırcık parantezler {}
veya set()
yapıcısı kullanılarak oluşturulabilir. Boş bir kümenin set()
kullanılarak oluşturulması gerekmektedir; {}
boş bir sözlük oluşturur.
# Kıvırcık parantezler kullanılarak
my_set = {1, 2, 3, 4, 5}
print(my_set) # Çıktı: {1, 2, 3, 4, 5}
# set() yapıcısı kullanılarak
another_set = set([6, 7, 8, 8]) # Yinelenenler otomatik olarak kaldırılır
print(another_set) # Çıktı: {8, 6, 7}
empty_set = set()
print(empty_set) # Çıktı: set()
Kümelerin sırasız olduğunu unutmayın, bu nedenle çıktı sırası giriş sırasından farklı olabilir.
2. Öge Ekleme ve Güncelleme
Tek bir öge eklemek için add()
yöntemini ve birden fazla öge eklemek için update()
yöntemini kullanın.
my_set = {1, 2, 3}
my_set.add(4)
print(my_set) # Çıktı: {1, 2, 3, 4}
my_set.update([5, 6, 7])
print(my_set) # Çıktı: {1, 2, 3, 4, 5, 6, 7}
my_set.update({8, 9}, (10,)) # Küme ve demet ile güncelleme
print(my_set) # Çıktı: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
3. Öge Kaldırma
Öge kaldırma için çeşitli yöntemler mevcuttur. remove()
, öge bulunmazsa KeyError
hatası verirken, discard()
hata vermez.
my_set = {1, 2, 3, 4, 5}
my_set.remove(3) # Öge bulunmazsa KeyError hatası verir
print(my_set) # Çıktı: {1, 2, 4, 5}
my_set.discard(6) # Öge bulunmazsa hata vermez
print(my_set) # Çıktı: {1, 2, 4, 5}
removed_element = my_set.pop() # Keyfi bir ögeyi kaldırır ve döndürür
print(removed_element) # Çıktı: (rastgele bir öge)
print(my_set)
my_set.clear() # Tüm ögeleri kaldırır
print(my_set) # Çıktı: set()
4. Küme İşlemleri
Kümeler, standart matematiksel küme işlemlerini destekler:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# Birleşim: Her iki kümenin ögelerini birleştirir
union_set = set1 | set2 # veya set1.union(set2)
print(union_set) # Çıktı: {1, 2, 3, 4, 5}
# Kesişim: Her iki kümede de bulunan ögeler
intersection_set = set1 & set2 # veya set1.intersection(set2)
print(intersection_set) # Çıktı: {3}
# Fark: set1'de ama set2'de olmayan ögeler
difference_set = set1 - set2 # veya set1.difference(set2)
print(difference_set) # Çıktı: {1, 2}
# Simetrik Fark: set1 veya set2'de ama ikisinde de olmayan ögeler
symmetric_difference_set = set1 ^ set2 # veya set1.symmetric_difference(set2)
print(symmetric_difference_set) # Çıktı: {1, 2, 4, 5}
5. Küme Yöntemleri
Python, küme manipülasyonu için birçok yerleşik yöntem sunar:
my_set = {1, 2, 3, 4, 5}
print(my_set.issubset({1, 2, 3, 4, 5, 6})) # True
print(my_set.issuperset({1, 2})) # True
print(my_set.isdisjoint({6, 7, 8})) # True - ortak öge yok
print(my_set.copy()) # kümenin sığ bir kopyasını oluşturur
6. Diğer Küme İşlemleri
Temel işlemlerin ötesinde, üyeliği kontrol edebilir, uzunluğu bulabilir ve daha fazlasını yapabilirsiniz:
my_set = {1, 2, 3}
print(1 in my_set) # Çıktı: True
print(4 not in my_set) # Çıktı: True
print(len(my_set)) # Çıktı: 3
7. Kümeler ile Yerleşik Fonksiyonlar
all()
, any()
, sum()
, min()
, max()
gibi fonksiyonlar kümeler ile çalışır:
my_set = {1, 2, 3, 4, 5}
print(sum(my_set)) # Çıktı: 15
print(min(my_set)) # Çıktı: 1
print(max(my_set)) # Çıktı: 5
print(all(x > 0 for x in my_set)) # Çıktı: True
print(any(x == 0 for x in my_set)) # Çıktı: False
8. Frozensets (Donmuş Kümeler)
frozenset
, değiştirilemez bir küme oluşturur. Oluşturulduktan sonra, öge ekleyemez veya kaldıramazsınız. Sözlük anahtarları veya diğer kümelerin ögeleri olarak kullanışlıdırlar.
my_frozenset = frozenset({1, 2, 3})
# my_frozenset.add(4) # Bu bir AttributeError hatasına neden olur
print(my_frozenset) # Çıktı: frozenset({1, 2, 3})