Ana içeriğe atla

Python Kümeleri ve Küme Kuramı Eğitimi

Python kümeleri hakkında bilgi edinin: nedirler, nasıl oluşturulurlar, ne zaman kullanılırlar, yerleşik fonksiyonlar ve küme kuramı işlemleriyle ilişkileri.
Güncel 3 Eki 2026  · 13 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Python Kümeleri vs Listeler ve Demetler

Listeler ve demetler (tuples), değerleri bir sırada saklayan standart Python veri türleridir. Kümeler de değer saklayan bir diğer standart Python veri türüdür. Temel fark, kümelerin listeler veya demetlerin aksine aynı öğenin birden fazla kez bulunmasına izin vermemesi ve değerleri sırasız olarak depolamasıdır.

Bir Python Kümesinin Avantajları

Kümeler aynı öğenin birden fazla kez bulunmasına izin vermediği için, bir liste veya demetten yinelenen değerleri verimli bir şekilde kaldırmak ve birleşim ile kesişim gibi yaygın matematiksel işlemleri gerçekleştirmek için son derece kullanışlıdır.

Python becerilerinizi geliştirmek istiyorsanız veya yeni başlıyorsanız, DataCamp'teki Python Programmer kariyer yoluna mutlaka göz atın.

Hazırsanız başlayalım.

Python'da Kümeler Nasıl Oluşturulur

Kümeler, sırasız olan, birbirinden farklı (benzersiz) değiştirilemez değerlerin değiştirilebilir bir koleksiyonudur.

Boş bir kümeyi set() kullanarak başlatabilirsiniz.

emptySet = set()

Bir kümeyi değerlerle başlatmak için set() fonksiyonuna bir liste geçebilirsiniz.

dataScientist = set(['Python', 'R', 'SQL', 'Git', 'Tableau', 'SAS'])
dataEngineer = set(['Python', 'Java', 'Scala', 'Git', 'SQL', 'Hadoop'])

Bu eğitimdeki kodu çevrimiçi olarak çalıştırın ve düzenleyin

Kodu çalıştır

Python'ı Ücretsiz Öğrenmeye Başlayın

Python'da Veri Tipleri

BasicSkill Level
4 sa
89.1K learners
Python veri türleri olan listeler, sözlükler ve demetler hakkındaki bilginizi pekiştirin ve genişletin; bunları Veri Bilimi problemlerini çözmek için kullanın.
See DetailsRight Arrow
Start Course

Bir Küme Başlatın

Yukarıdaki dataScientist ve dataEngineer değişkenlerinin çıktısına bakarsanız, kümedeki değerlerin eklenme sırasına göre olmadığını fark edersiniz. Bunun nedeni kümelerin sırasız olmasıdır.

Değer içeren kümeler süslü parantezler kullanılarak da başlatılabilir.

dataScientist = {'Python', 'R', 'SQL', 'Git', 'Tableau', 'SAS'}
dataEngineer = {'Python', 'Java', 'Scala', 'Git', 'SQL', 'Hadoop'}

Bir Küme Başlatın

Süslü parantezlerin yalnızca değer içeren bir kümeyi başlatmak için kullanılabileceğini unutmayın. Aşağıdaki görsel, değer olmadan süslü parantez kullanmanın bir kümeyi değil, sözlüğü başlatmanın yollarından biri olduğunu gösterir.

Bir Küme Başlatın

Python Kümelerine Değer Ekleme ve Kaldırma

Bir kümeye değer eklemek veya bir değeri kaldırmak için önce bir kümeyi başlatmanız gerekir.

# Değerlerle küme başlat
graphicDesigner = {'InDesign', 'Photoshop', 'Acrobat', 'Premiere', 'Bridge'}

Bir Python Kümesine Değer Ekleme

Bir kümeye değer eklemek için add yöntemini kullanabilirsiniz.

graphicDesigner.add('Illustrator')

Kümeye Değer Ekleme

Yalnızca değiştirilemez (string veya demet gibi) bir değeri kümeye ekleyebileceğinizi unutmamak önemlidir. Örneğin, bir listeyi kümeye eklemeye çalışırsanız TypeError alırsınız.

graphicDesigner.add(['Powerpoint', 'Blender'])

Kümeye Değer Ekleme

Python Kümelerinden Değer Kaldırma

Bir kümeden bir değeri kaldırmanın birkaç yolu vardır.

Seçenek 1: Bir değeri kümeden kaldırmak için remove yöntemini kullanabilirsiniz.

graphicDesigner.remove('Illustrator')

Kümelerden Değer Kaldırma

Bu yöntemin dezavantajı, kümenizde olmayan bir değeri kaldırmaya çalışırsanız KeyError hatası almanızdır.

Kümelerden Değer Kaldırma

Seçenek 2: Bir değeri kümeden kaldırmak için discard yöntemini kullanabilirsiniz.

graphicDesigner.discard('Premiere')

Kümelerden Değer Kaldırma

Bu yaklaşımın remove yöntemine göre avantajı, kümenin parçası olmayan bir değeri kaldırmaya çalışsanız bile KeyError almamanızdır. Sözlüklere aşinaysanız, bunun sözlüklerdeki get yöntemine benzer şekilde çalıştığını görebilirsiniz.

Seçenek 3: Ayrıca bir kümeden rastgele bir değeri kaldırmak ve döndürmek için pop yöntemini kullanabilirsiniz.

graphicDesigner.pop()

Kümelerden Değer Kaldırma

Bu yöntemin, küme boşsa KeyError yükselttiğini unutmamak önemlidir.

Bir Python Kümesindeki Tüm Değerleri Kaldırma

Bir kümedeki tüm değerleri kaldırmak için clear yöntemini kullanabilirsiniz.

graphicDesigner.clear()

Bir Kümeden Tüm Değerleri Kaldırma

Python Kümesindeki Değerleri Güncelleme

update yöntemi, bir kümenin elemanlarını başka bir kümeye ekler. Argüman olarak bir küme, liste, demet veya sözlük alabilir. .update() yöntemi diğer veri türlerini otomatik olarak kümeye dönüştürür ve kümeye ekler. 

Örnekte üç küme başlattık ve set2'den set1'e, ardından set3'ten set1'e elemanları eklemek için update fonksiyonunu kullandık. 

# 3 küme başlat
set1 = set([7, 10, 11, 13])
set2 = set([11, 8, 9, 12, 14, 15])
set3 = {'d', 'f', 'h'}

# set1'i set2 ile güncelle
set1.update(set2)
print(set1)

# set1'i set3 ile güncelle
set1.update(set3)
print(set1)

Python Küme Güncelleme

Bir Python Kümesini Döngüyle Gezinme

Birçok standart Python veri türünde olduğu gibi, bir küme üzerinde de döngü kurmak mümkündür.

# Bir küme başlat
dataScientist = {'Python', 'R', 'SQL', 'Git', 'Tableau', 'SAS'}

for skill in dataScientist:
    print(skill)

Bir Kümede Döngü

dataScientist içindeki her değeri yazdırma çıktısına bakarsanız, değerlerin eklenme sırasına göre yazdırılmadığını fark edersiniz. Bunun nedeni kümelerin sırasız olmasıdır.

Bir Python Kümesini Sıralı Değerlere Dönüştürme

Bu eğitimde kümelerin sırasız olduğu vurgulandı. Kümenizden değerleri sıralı biçimde elde etmeniz gerekiyorsa, sıralı bir liste döndüren sorted fonksiyonunu kullanabilirsiniz.

type(sorted(dataScientist))

Kümeyi Sıralı Değerlere Dönüştürme

Aşağıdaki kod, dataScientist kümesindeki değerleri azalan alfabetik düzende (bu durumda Z-A) çıktı verir.

sorted(dataScientist, reverse = True)

Kümeyi Sıralı Değerlere Dönüştürme

Python'da Bir Listeden Yinelenenleri Kaldırma

Bu bölümün bir kısmı daha önce En Yaygın 18 Python Liste Sorusu eğitiminde ele alınmıştı; ancak, yinelenenleri bir listeden kaldırmanın en hızlı yolunun kümeler olduğunu vurgulamak önemlidir. Bunu göstermek için iki yaklaşım arasındaki performans farkını inceleyelim.

Yaklaşım 1: Bir listeden yinelenenleri kaldırmak için bir küme kullanın.

print(list(set([1, 2, 3, 1, 7])))

Yaklaşım 2: Bir listeden yinelenenleri kaldırmak için bir liste üreteci (list comprehension) kullanın ( liste üreteçlerine yeniden bakmak isterseniz bu eğitimi inceleyin).

def remove_duplicates(original):
    unique = []
    [unique.append(n) for n in original if n not in unique]
    return(unique)

print(remove_duplicates([1, 2, 3, 1, 7]))

Performans farkı, Python kodunuzu zamanlamanıza olanak tanıyan timeit kitaplığı kullanılarak ölçülebilir. Aşağıdaki kod her yaklaşımın kodunu 10000 kez çalıştırır ve saniye cinsinden toplam süreyi verir.

import timeit

# Yaklaşım 1: Çalışma süresi
print(timeit.timeit('list(set([1, 2, 3, 1, 7]))', number=10000))

# Yaklaşım 2: Çalışma süresi
print(timeit.timeit('remove_duplicates([1, 2, 3, 1, 7])', globals=globals(), number=10000))

Listeden Yinelenenleri Kaldırma

Bu iki yaklaşımı karşılaştırmak, yinelenenleri kaldırmak için kümelerin kullanılmasının daha verimli olduğunu gösterir. Zaman farkı küçük görünse de çok büyük listeleriniz olduğunda size ciddi zaman kazandırabilir.

Python Küme İşlemleri

Python'da kümelerin yaygın bir kullanım alanı, birleşim, kesişim, fark ve simetrik fark gibi standart matematiksel işlemleri hesaplamaktır. Aşağıdaki görsel, A ve B iki kümesi üzerinde birkaç standart matematik işlemini gösterir. Her Venn diyagramındaki kırmızı kısım, verilen küme işleminin sonucunda elde edilen kümeyi temsil eder.

Küme İşlem Yöntemleri

Python kümeleri, bu matematiksel işlemleri gerçekleştirmenizi sağlayan yöntemlere ve eşdeğer sonuçlar veren operatörlere sahiptir.

Bu yöntemleri incelemeden önce, dataScientist ve dataEngineer olmak üzere iki kümeyi başlatarak başlayalım.

dataScientist = set(['Python', 'R', 'SQL', 'Git', 'Tableau', 'SAS'])
dataEngineer = set(['Python', 'Java', 'Scala', 'Git', 'SQL', 'Hadoop'])

union

Birleşim, dataScientist ∪ dataEngineer ile gösterilir; dataScientist'in, dataEngineer'ın ya da her ikisinin de değeri olan tüm değerlerin kümesidir. İki kümedeki tüm benzersiz değerleri bulmak için union yöntemini kullanabilirsiniz.

# set yerleşik fonksiyonu union
dataScientist.union(dataEngineer)

# Eşdeğer Sonuç
dataScientist | dataEngineer

Birleşimden dönen küme aşağıdaki Venn diyagramındaki kırmızı kısım olarak görselleştirilebilir.

Küme İşlem Yöntemleri

intersection

dataScientist ve dataEngineer iki kümesinin kesişimi, dataScientist ∩ dataEngineer ile gösterilir; her ikisinin de değeri olan tüm değerlerin kümesidir.

# Kesişim işlemi
dataScientist.intersection(dataEngineer)

# Eşdeğer Sonuç
dataScientist & dataEngineer

kesişim

Kesişimden dönen küme aşağıdaki Venn diyagramındaki kırmızı kısım olarak görselleştirilebilir.

kesişim

İki kümenin ortak hiçbir değeri olmadığından emin olmak istediğiniz bir durumla karşılaşabilirsiniz. Başka bir deyişle, kesişimleri boş olan iki küme istersiniz. Bu iki kümeye ayrık (disjoint) kümeler denir. Ayrık kümeleri isdisjoint yöntemiyle test edebilirsiniz.

# Bir küme başlat
graphicDesigner = {'Illustrator', 'InDesign', 'Photoshop'}

# Bu kümelerin ortak elemanları olduğundan False döner
dataScientist.isdisjoint(dataEngineer)

# Bu kümelerin ortak elemanı olmadığından True döner
dataScientist.isdisjoint(graphicDesigner)

kesişim

Aşağıdaki Venn diyagramında gösterilen kesişimde, ayrık kümeler olan dataScientist ve graphicDesigner'ın ortak değerleri olmadığını görebilirsiniz.

kesişim

Fark

dataScientist ve dataEngineer iki kümesinin farkı, dataScientist \ dataEngineer ile gösterilir; dataScientist'in olup da dataEngineer'ın olmadığı tüm değerlerin kümesidir.

# Fark işlemi
dataScientist.difference(dataEngineer)

# Eşdeğer Sonuç
dataScientist - dataEngineer

fark

Farktan dönen küme aşağıdaki Venn diyagramındaki kırmızı kısım olarak görselleştirilebilir.

fark

Simetrik Fark

dataScientist ve dataEngineer iki kümesinin simetrik farkı, dataScientist △ dataEngineer ile gösterilir; iki kümeden tam olarak birinin değeri olan, ancak her ikisinin birden olmayan tüm değerlerin kümesidir.

# Simetrik Fark işlemi
dataScientist.symmetric_difference(dataEngineer)

# Eşdeğer Sonuç
dataScientist ^ dataEngineer

symmetric_difference

Simetrik farktan dönen küme aşağıdaki Venn diyagramındaki kırmızı kısım olarak görselleştirilebilir.

symmetric_difference

Küme Üreteçleri (Set Comprehension)

Daha önce liste üreteçleri, sözlük üreteçleri ve üreteç ifadeleri hakkında öğrenmiş olabilirsiniz. Python'da küme üreteçleri de vardır. Küme üreteçleri bunlara çok benzer. Python'da küme üreteçleri şu şekilde oluşturulabilir:

{skill for skill in ['SQL', 'SQL', 'PYTHON', 'PYTHON']}

Küme Üreteci

Yukarıdaki çıktı 2 değerden oluşan bir kümedir; çünkü kümelerde aynı öğe birden fazla kez bulunamaz.

Küme üreteçlerinin ardındaki fikir, kodu el ile matematik yapar gibi yazmanızı ve düşünmenizi sağlamaktır.

{skill for skill in ['GIT', 'PYTHON', 'SQL'] if skill not in {'GIT', 'PYTHON', 'JAVA'}}
 

Yukarıdaki kod, daha önce öğrendiğiniz küme farkına benzer. Sadece görünümü biraz farklıdır.

Üyelik Testleri

Üyelik testleri, bir dizide (string, liste, demet veya küme gibi) belirli bir öğenin bulunup bulunmadığını kontrol eder. Python'da kümeleri kullanmanın başlıca avantajlarından biri, üyelik testleri için yüksek ölçüde optimize edilmiş olmalarıdır. Örneğin, kümeler üyelik testlerini listelere kıyasla çok daha verimli yapar. Bilgisayar bilimi geçmişiniz varsa, bunun nedeni kümelerde üyelik testlerinin ortalama zaman karmaşıklığının O(1), listelerde ise O(n) olmasıdır.

Aşağıdaki kod bir liste kullanarak üyelik testini gösterir.

# Bir liste başlat
possibleList = ['Python', 'R', 'SQL', 'Git', 'Tableau', 'SAS', 'Java', 'Spark', 'Scala']

# Üyelik testi
'Python' in possibleList

Üyelik Testleri

Kümeler için de benzeri yapılabilir. Kümeler sadece daha verimlidir.

# Bir küme başlat
possibleSet = {'Python', 'R', 'SQL', 'Git', 'Tableau', 'SAS', 'Java', 'Spark', 'Scala'}

# Üyelik testi
'Python' in possibleSet

Üyelik Testleri

possibleSet bir küme olduğundan ve 'Python' değeri possibleSet'in bir değeri olduğundan, bu durum 'Python' ∈ possibleSet şeklinde gösterilebilir.

Eğer kümenin parçası olmayan bir değeriniz olsaydı, örneğin 'Fortran', bu da 'Fortran' ∉ possibleSet şeklinde gösterilirdi.

Alt Küme

Üyeliği anlamanın pratik bir uygulaması alt kümelerdir.

Önce iki küme başlatalım.

possibleSkills = {'Python', 'R', 'SQL', 'Git', 'Tableau', 'SAS'}
mySkills = {'Python', 'R'}
 

Eğer mySkills kümesinin her değeri possibleSkills kümesinin de bir değeri ise, mySkills kümesi possibleSkills'in bir alt kümesi olarak adlandırılır; matematiksel olarak mySkills ⊆ possibleSkills şeklinde yazılır.

Bir kümenin başka bir kümenin alt kümesi olup olmadığını issubset yöntemiyle kontrol edebilirsiniz.

mySkills.issubset(possibleSkills)

Alt Küme

Bu örnekte yöntem True döndürdüğü için alt kümedir. Aşağıdaki Venn diyagramında, mySkills kümesinin her değerinin possibleSkills kümesinin de bir değeri olduğunu fark edeceksiniz.

Alt Küme

Frozenset'ler

İç içe listeler ve demetlerle karşılaşmış olabilirsiniz.

# İç içe Listeler ve Demetler
nestedLists = [['the', 12], ['to', 11], ['of', 9], ['and', 7], ['that', 6]]
nestedTuples = (('the', 12), ('to', 11), ('of', 9), ('and', 7), ('that', 6))

Frozenset'ler

İç içe kümelerdeki sorun, kümelerin değiştirilebilir değerleri (kümeler dahil) içerememesi nedeniyle normalde iç içe Python kümelerine sahip olamamanızdır.

Frozenset'ler

Bu, frozenset kullanmak isteyebileceğiniz bir durumdur. Frozenset, kümeye çok benzer; tek farkı frozenset'in değiştirilemez (immutable) olmasıdır.

Bir frozenset'i frozenset() kullanarak oluşturursunuz.

# Bir frozenset başlat
immutableSet = frozenset()

Frozenset'ler

Aşağıdaki koda benzer şekilde bir frozenset kullanarak iç içe bir küme oluşturabilirsiniz.

nestedSets = set([frozenset()])

Frozenset'ler

Frozenset'in başlıca dezavantajının, değiştirilemez olmaları nedeniyle değer ekleyip kaldıramamanız olduğunu aklınızda bulundurun.

Sonuç

Python kümeleri, bir liste gibi koleksiyonlardan yinelenen değerleri verimli bir şekilde kaldırmak ve birleşim ile kesişim gibi yaygın matematik işlemlerini gerçekleştirmek için son derece kullanışlıdır. İnsanların sıklıkla karşılaştığı zorluklardan biri, farklı veri türlerini ne zaman kullanacaklarını bilmektir. Örneğin, bir sözlüğü ne zaman, bir kümeyi ne zaman kullanmanın daha avantajlı olduğundan emin değilseniz, DataCamp'in günlük pratik moduna göz atmanızı öneririm. Eğitimle ilgili herhangi bir soru veya düşünceniz varsa, aşağıdaki yorumlardan ya da Twitter üzerinden bana ulaşabilirsiniz.

Konular
Python

Python Kursları

Kurs

Python’a Giriş

4 sa
7.1M
Python ile veri analizi temellerini sadece dört saatte öğrenin. Bu çevrimiçi kurs, Python arayüzünü tanıtacak ve popüler paketleri keşfedecektir.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör