DEV Community

Vebende Akademi
Vebende Akademi

Posted on

Python Dictionary ve Set Comprehensions: Sıfırdan İleri Seviye Kapsamlı Rehber

Python Dictionary ve Set Comprehensions: Sıfırdan İleri Seviye Kapsamlı Rehber

Python’da comprehension yapıları, kodu hem daha okunabilir hem de daha performanslı hale getiren modern programlama yaklaşımıdır.

En çok bilinenler:

  • List Comprehension
  • Dictionary Comprehension
  • Set Comprehension

Bu makalede özellikle Dictionary ve Set Comprehension yapılarını:

  • mantık
  • performans
  • gerçek dünya kullanımı
  • bol hands-on örneklerle

derinlemesine öğreneceksin.


1. Comprehension Nedir?

Comprehension, döngü ve koşul yapısını tek satırda ifade etme yöntemidir.

Klasik yöntem:

```python id="c1"
kareler = []

for x in range(10):
kareler.append(x * x)

print(kareler)




Comprehension:



```python id="c2"
kareler = [x * x for x in range(10)]
Enter fullscreen mode Exit fullscreen mode

Ama bugün odak:

  • Dictionary Comprehension
  • Set Comprehension

2. Dictionary Comprehension (Sözlük Üretimi)

Dictionary comprehension, key-value çiftlerini tek satırda üretme yöntemidir.


2.1 Temel Yapı

{key: value for item in iterable}
Enter fullscreen mode Exit fullscreen mode

2.2 İlk Örnek – Kare Tablosu

```python id="d1"
kareler = {
x: x * x
for x in range(1, 6)
}

print(kareler)




Çıktı:



```text
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
Enter fullscreen mode Exit fullscreen mode

2.3 Koşullu Dictionary Comprehension

Sadece çift sayılar:

```python id="d2"
cift_kareler = {
x: x * x
for x in range(10)
if x % 2 == 0
}

print(cift_kareler)




---

## 2.4 String → Dictionary



```python id="d3"
kelimeler = ["python", "java", "csharp"]

uzunluk = {
    k: len(k)
    for k in kelimeler
}

print(uzunluk)
Enter fullscreen mode Exit fullscreen mode

2.5 Veriyi Normalize Etme (Real World)

```python id="d4"
ham_veri = [" Ali ", " Ayşe ", " Mehmet "]

temiz = {
isim.strip().lower(): len(isim.strip())
for isim in ham_veri
}

print(temiz)




---

## 2.6 Key Mapping (API Transform)



```python id="d5"
api_response = [
    ("id", 1),
    ("name", "Laptop"),
    ("price", 45000)
]

product = {
    k: v
    for k, v in api_response
}

print(product)
Enter fullscreen mode Exit fullscreen mode

2.7 Nested Dictionary Comprehension

```python id="d6"
data = {
f"item_{x}": {
"value": x,
"square": x * x
}
for x in range(5)
}

print(data)




---

## 2.8 Dictionary Filtering (Log Analizi)



```python id="d7"
logs = {
    "INFO": 120,
    "ERROR": 5,
    "WARNING": 10
}

critical = {
    k: v
    for k, v in logs.items()
    if v > 10
}

print(critical)
Enter fullscreen mode Exit fullscreen mode

3. Set Comprehension (Küme Üretimi)

Set comprehension, benzersiz veri üretmek için kullanılır.


3.1 Temel Yapı

{expression for item in iterable}
Enter fullscreen mode Exit fullscreen mode

3.2 İlk Örnek

```python id="s1"
kareler = {
x * x
for x in range(10)
}

print(kareler)




---

## 3.3 Duplicate Otomatik Silme



```python id="s2"
veri = [1, 2, 2, 3, 3, 4, 5]

unique = {
    x
    for x in veri
}

print(unique)
Enter fullscreen mode Exit fullscreen mode

3.4 String Set Comprehension

```python id="s3"
kelime = "python programming"

harfler = {
c
for c in kelime
if c != " "
}

print(harfler)




---

## 3.5 Filtreleme (Sadece Çift Sayılar)



```python id="s4"
ciftler = {
    x
    for x in range(20)
    if x % 2 == 0
}

print(ciftler)
Enter fullscreen mode Exit fullscreen mode

3.6 Unique Domain Extraction (Real World)

```python id="s5"
emails = [
"ali@gmail.com",
"ayse@gmail.com",
"mehmet@yahoo.com",
"zeynep@gmail.com"
]

domainler = {
email.split("@")[1]
for email in emails
}

print(domainler)




---

## 3.7 Log Level Extraction



```python id="s6"
logs = [
    "INFO: start",
    "ERROR: fail",
    "INFO: continue",
    "WARNING: slow"
]

tipler = {
    log.split(":")[0]
    for log in logs
}

print(tipler)
Enter fullscreen mode Exit fullscreen mode

3.8 Set + Condition (Data Cleaning)

```python id="s7"
veri = [10, 20, -5, 30, -1, 40]

temiz = {
x
for x in veri
if x > 0
}

print(temiz)




---

# 4. Dictionary vs Set Comprehension

| Özellik    | Dictionary  | Set             |
| ---------- | ----------- | --------------- |
| Çıktı tipi | key-value   | unique values   |
| Duplicate  | key unique  | tamamen unique  |
| Kullanım   | mapping     | filtering       |
| Performans | O(1) lookup | O(1) membership |

---

# 5. Gerçek Hayat Kullanım Senaryoları

## 5.1 API Response Mapping



```python id="r1"
response = [
    ("status", "ok"),
    ("code", 200),
    ("time", "120ms")
]

result = {
    k: v
    for k, v in response
}

print(result)
Enter fullscreen mode Exit fullscreen mode

5.2 Data Deduplication Pipeline

```python id="r2"
raw = [
"user1",
"user2",
"user1",
"user3"
]

unique_users = {
u
for u in raw
}

print(unique_users)




---

## 5.3 Feature Engineering (AI / ML)



```python id="r3"
features = {
    f"x{i}": i * 2
    for i in range(10)
}

print(features)
Enter fullscreen mode Exit fullscreen mode

5.4 KPI Filtering

```python id="r4"
kpi = {
"sales": 100,
"cost": 90,
"profit": 10
}

filtered = {
k: v
for k, v in kpi.items()
if v > 20
}

print(filtered)




---

# 6. Performans Perspektifi

Comprehension yapıları:

* Daha hızlı çalışır
* CPython optimizasyonu vardır
* append loop’a göre daha az overhead üretir

Örnek karşılaştırma:



```python id="perf1"
# klasik yöntem
liste = []
for i in range(1000):
    liste.append(i * 2)

# comprehension
liste2 = [i * 2 for i in range(1000)]
Enter fullscreen mode Exit fullscreen mode

7. İç İçe (Nested) Comprehension

7.1 Dictionary içinde Dictionary

```python id="n1"
matrix = {
i: {
j: i * j
for j in range(3)
}
for i in range(3)
}

print(matrix)




---

## 7.2 Set of Tuples



```python id="n2"
pairs = {
    (x, y)
    for x in range(3)
    for y in range(3)
}

print(pairs)
Enter fullscreen mode Exit fullscreen mode

8. En Güçlü Kullanım: Veri Dönüştürme Pipeline

```python id="p1"
raw_data = [
{"name": " Ali ", "age": 30},
{"name": "Ayşe", "age": 25}
]

cleaned = {
item["name"].strip(): item["age"]
for item in raw_data
}

print(cleaned)




---

# 9. Python ve C# Perspektifi

## Python



```python id="csh1"
{ x: x*x for x in range(5) }
Enter fullscreen mode Exit fullscreen mode

C# Alternatif

```csharp id="csh2"
var dict = Enumerable.Range(0, 5)
.ToDictionary(x => x, x => x * x);




---

# 10. Profesyonel Kullanım Tavsiyeleri

Dictionary / Set comprehension kullan:

* Veri transformasyonunda
* ETL pipeline’larda
* API response mapping’de
* Log parsing işlemlerinde
* Feature engineering’de
* Deduplication süreçlerinde

Kullanma:

* Çok karmaşık logic varsa
* Debug edilmesi zor olacaksa
* 1 satır okunabilirliği bozuyorsa

---

# 11. Özet

Dictionary ve Set Comprehensions:

* Kod yazımını sadeleştirir
* Performansı artırır
* Veri dönüşümünü hızlandırır
* Modern Python’un temel yeteneklerindendir

Özetle:

* Dictionary comprehension → **mapping / transform**
* Set comprehension → **unique / filter**
Enter fullscreen mode Exit fullscreen mode

Top comments (0)