Filtreli comprehension
- Python kursu
- Başlangıç
- Ders 60/116
- 5 dk
[x for x in xs if cond] ile filtreli comprehension'ı öğrenirsin.
Filtreli comprehension
Comprehension'e bir if koşulu ekleyerek elemanları filtreleyebilirsin:
evens = [n for n in [1, 2, 3, 4] if n % 2 == 0]
# [2, 4]Yapı: [ifade for değişken in liste if koşul]. Koşul True olan elemanlar sonuçta kalır. Koşul her eleman için ayrı değerlendirilir.
Filtre, döngü icerisinde if ile eleman eklemekten daha kısa bir yazımdır.
Birden fazla koşul
Birden fazla koşulu and veya or ile birleştirebilirsin:
result = [n for n in range(20) if n % 2 == 0 and n % 3 == 0]
# [0, 6, 12, 18]Her iki koşul da True olmalı. Bu, klasik döngüyle yapilabilecek her filtreleme işini comprehension ile de yapabilecegini gösterir.
Uygulama Pozitif sayıları filtrele
positives değişkenine, [-3, -1, 0, 2, 5] listesinden sıfırdan büyük elemanları seçen bir comprehension ata. Sonra print(positives) yazdır.
Başlangıç kodu
# Pozitif elemanlari filtreleÖrnek çözüm
positives = [n for n in [-3, -1, 0, 2, 5] if n > 0]
print(positives)Beklenen çıktı
[2, 5]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Çift sayıları filtrele
evens = [n for n in [1, 2, 3, 4] if n % ____ == 0]
evens = [n for n in [1, 2, 3, 4] if n % 2 == 0]
Açıklama: n % 2 == 0 çift sayıları seçer.
2 Filtre parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
if |
Filtre kelimesi |
n % 2 == 0 |
Çift sayı koşulu |
and |
Ve bagaci |
or |
Veya bagaci |
3 [n for n in [1, 2, 3, 4, 5] if n > 3] ne üretir?
- [1, 2, 3]
- [4, 5] Doğru cevap
- [3, 4, 5]
- [1, 2]
Açıklama: Koşul n > 3 olduğu için sadece 4 ve 5 kalır.