Gelişmiş Veri İşleme (Python)
Sıralama, Filtreleme ve Arama – Profesyonel Veri Manipülasyonu Rehberi
Python’da veri işleme, sadece döngülerden ibaret değildir. Modern Python yaklaşımı; fonksiyonel programlama araçları, yüksek seviyeli built-in fonksiyonlar ve lambda ifadeleri ile daha kısa, daha okunabilir ve daha performanslı çözümler üretmeyi hedefler.
Bu bölümde dört kritik alanı derinlemesine inceleyeceğiz:
- sorted() ile gelişmiş sıralama
- lambda ile karmaşık veri yapıları üzerinde sıralama
- filter() ve map() ile fonksiyonel veri dönüşümü
- any() ve all() ile toplu doğrulama (validation)
Her bölümde gerçek dünya senaryoları ve hands-on örnekler olacak.
1. sorted() Fonksiyonu — Gelişmiş Sıralama Motoru
1.1 Temel Yapı
sorted(iterable, key=None, reverse=False)
Parametreler:
- iterable: Liste, tuple, set vb.
- key: Sıralama kriteri (fonksiyon)
- reverse: True → büyükten küçüğe
1.2 Basit Sıralama
```python id="s1"
sayilar = [5, 1, 9, 3, 7]
sonuc = sorted(sayilar)
print(sonuc)
---
## 1.3 Ters Sıralama
```python id="s2"
sayilar = [5, 1, 9, 3, 7]
print(sorted(sayilar, reverse=True))
1.4 Tuple Sıralama
```python id="s3"
veri = (10, 5, 20, 15)
print(sorted(veri))
---
## 1.5 String Sıralama (ASCII mantığı)
```python id="s4"
kelimeler = ["python", "ai", "data", "backend"]
print(sorted(kelimeler))
2. key Parametresi — Sıralamanın Beyni
sorted() fonksiyonunun gerçek gücü burada başlar.
2.1 String Uzunluğuna Göre Sıralama
```python id="k1"
kelimeler = ["python", "ai", "veri", "makineöğrenmesi"]
sonuc = sorted(kelimeler, key=len)
print(sonuc)
---
## 2.2 Sayıların Moduna Göre Sıralama
```python id="k2"
sayilar = [10, 3, 7, 21, 14, 9]
sonuc = sorted(sayilar, key=lambda x: x % 5)
print(sonuc)
2.3 Tuple Sıralama (Gerçek Dünya)
```python id="k3"
urunler = [
("Laptop", 45000),
("Mouse", 500),
("Monitör", 12000)
]
sonuc = sorted(urunler, key=lambda x: x[1])
print(sonuc)
---
## 2.4 Çok Katmanlı Sıralama
Fiyat → sonra isim
```python id="k4"
urunler = [
("Laptop", 45000),
("Mouse", 500),
("Monitör", 12000),
("Laptop Pro", 45000)
]
sonuc = sorted(
urunler,
key=lambda x: (x[1], x[0])
)
print(sonuc)
2.5 Dictionary Sıralama
```python id="k5"
urunler = {
"Laptop": 45000,
"Mouse": 500,
"Monitör": 12000
}
sonuc = sorted(
urunler.items(),
key=lambda x: x[1]
)
print(sonuc)
---
# 3. Lambda ile Karmaşık Sıralama
Lambda = isimsiz fonksiyon
---
## 3.1 Temel Lambda
```python id="l1"
f = lambda x: x * 2
print(f(5))
3.2 Sıralamada Lambda Kullanımı
```python id="l2"
ogrenciler = [
{"ad": "Ali", "not": 80},
{"ad": "Ayşe", "not": 95},
{"ad": "Mehmet", "not": 70}
]
print(sorted(ogrenciler, key=lambda x: x["not"]))
---
## 3.3 En Yüksek Not
```python id="l3"
print(sorted(ogrenciler, key=lambda x: x["not"], reverse=True))
3.4 Çok Alanlı Sıralama
```python id="l4"
data = [
{"ad": "Ali", "not": 80, "yas": 22},
{"ad": "Ayşe", "not": 80, "yas": 20},
{"ad": "Mehmet", "not": 70, "yas": 25}
]
sonuc = sorted(
data,
key=lambda x: (-x["not"], x["yas"])
)
print(sonuc)
---
# 4. filter() — Veri Filtreleme Motoru
## 4.1 Temel Yapı
```python
filter(function, iterable)
4.2 Çift Sayıları Filtreleme
```python id="f1"
sayilar = [1, 2, 3, 4, 5, 6]
ciftler = list(filter(lambda x: x % 2 == 0, sayilar))
print(ciftler)
---
## 4.3 Boş Değer Temizleme
```python id="f2"
veri = ["Ali", "", "Ayşe", None, "Mehmet"]
temiz = list(filter(None, veri))
print(temiz)
4.4 10’dan Büyük Sayılar
```python id="f3"
sayilar = [5, 10, 15, 3, 20]
sonuc = list(filter(lambda x: x > 10, sayilar))
print(sonuc)
---
## 4.5 Dictionary Filter
```python id="f4"
urunler = [
{"ad": "Laptop", "stok": 10},
{"ad": "Mouse", "stok": 0},
{"ad": "Monitör", "stok": 5}
]
sonuc = list(
filter(lambda x: x["stok"] > 0, urunler)
)
print(sonuc)
5. map() — Veri Dönüştürme Motoru
5.1 Temel Yapı
map(function, iterable)
5.2 Sayıları 2 ile Çarpma
```python id="m1"
sayilar = [1, 2, 3, 4]
sonuc = list(map(lambda x: x * 2, sayilar))
print(sonuc)
---
## 5.3 String Uppercase
```python id="m2"
isimler = ["ali", "ayşe", "mehmet"]
sonuc = list(map(str.upper, isimler))
print(sonuc)
5.4 Float → Int Dönüşüm
```python id="m3"
sayilar = [1.2, 3.7, 5.9]
sonuc = list(map(int, sayilar))
print(sonuc)
---
## 5.5 Dictionary Transform
```python id="m4"
urunler = [
{"ad": "Laptop", "fiyat": 1000},
{"ad": "Mouse", "fiyat": 50}
]
sonuc = list(
map(lambda x: x["fiyat"] * 1.2, urunler)
)
print(sonuc)
5.6 map + lambda vs comprehension
```python id="m5"
map
list(map(lambda x: x * 2, range(5)))
comprehension (tercih edilir)
[x * 2 for x in range(5)]
---
# 6. any() — En Az Bir True Var mı?
## 6.1 Temel Kullanım
```python id="a1"
sayilar = [0, 0, 1, 0]
print(any(sayilar))
6.2 Şart Kontrolü
```python id="a2"
sayilar = [2, 4, 6, 7]
print(any(x % 2 == 1 for x in sayilar))
---
## 6.3 Kullanıcı Kontrolü
```python id="a3"
kullanicilar = [
{"aktif": False},
{"aktif": False},
{"aktif": True}
]
print(any(u["aktif"] for u in kullanicilar))
7. all() — Hepsi True mu?
7.1 Temel Kullanım
```python id="al1"
sayilar = [1, 2, 3, 4]
print(all(sayilar))
---
## 7.2 Tüm Sayılar Pozitif mi?
```python id="al2"
sayilar = [1, 2, 3, -1]
print(all(x > 0 for x in sayilar))
7.3 Validation Sistemi
```python id="al3"
form = {
"email": "test@mail.com",
"password": "12345",
"username": "admin"
}
print(all(form.values()))
---
# 8. any() vs all() Karşılaştırma
| Fonksiyon | Anlam |
| --------- | ------------ |
| any() | en az 1 True |
| all() | hepsi True |
---
# 9. Gerçek Hayat Hands-On Projeler
---
## 9.1 Log Analizi Sistemi
```python id="r1"
loglar = [
{"level": "INFO"},
{"level": "ERROR"},
{"level": "INFO"}
]
errors = list(
filter(lambda x: x["level"] == "ERROR", loglar)
)
print(errors)
9.2 En Pahalı Ürün
```python id="r2"
urunler = [
("A", 100),
("B", 500),
("C", 300)
]
en_pahali = max(urunler, key=lambda x: x[1])
print(en_pahali)
---
## 9.3 Geçerli Kullanıcı Kontrolü
```python id="r3"
kullanicilar = [
{"ad": "Ali", "aktif": True},
{"ad": "Ayşe", "aktif": False}
]
print(any(u["aktif"] for u in kullanicilar))
print(all(u["aktif"] for u in kullanicilar))
9.4 Veri Pipeline
```python id="r4"
data = [10, 15, 20, 25, 30]
sonuc = list(
map(
lambda x: x * 2,
filter(lambda x: x > 15, data)
)
)
print(sonuc)
---
# 10. Performans Perspektifi
* comprehension > map/filter (çoğu durumda)
* sorted() C implementasyonu ile çok hızlıdır
* any/all short-circuit çalışır (erken durur)
---
# 11. Python ve C# Karşılaştırma
## sorted()
```python
sorted(data, key=lambda x: x["not"])
data.OrderBy(x => x.Not);
filter()
list(filter(lambda x: x > 10, data))
data.Where(x => x > 10);
map()
list(map(lambda x: x * 2, data))
data.Select(x => x * 2);
12. Özet
Bu makalede öğrendiklerin:
sorted()
- Gelişmiş sıralama
- key parametresi
- lambda ile multi-sort
filter()
- veri eleme
- koşullu filtreleme
map()
- veri dönüşümü
any / all
- toplu doğrulama
Sonuç
Bu fonksiyonlar Python’un fonksiyonel programlama çekirdeğini oluşturur.
Modern backend, AI pipeline, data engineering sistemlerinde:
- sorted → ranking
- filter → cleaning
- map → transformation
- any/all → validation
olarak kritik rol oynar.
Top comments (0)