Filter Fonksiyonu
Coddy'nin Python Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 73 / 78.
filter() işlevi iki ana şey alır:
- Bir işlev (her öğeyi kontrol etmeye yönelik talimatları içerir)
- Öğelerden oluşan bir dizi (bir liste veya herhangi bir öğe koleksiyonu gibi)
Dizinizdeki her bir öğeye tek tek bakar ve yalnızca fonksiyonun testinden geçenleri (fonksiyon True döndürdüğünde) tutar.
Örneğin:
def is_even(n):
return n % 2 == 0
numbers = [1, 2, 3, 4, 5, 6] # Bu sadece bir sayı listesidir
even_numbers = filter(is_even, numbers)
print(list(even_numbers))
# Çıktı: [2, 4, 6]Burada ne oldu:
- Bir sayı listemiz var: [1, 2, 3, 4, 5, 6]
- filter() işlevi her sayıyı teker teker alır
- Her sayıyı is_even işlevimizden geçirir
- Fonksiyon True döndürürse, o sayıyı tutar
- Fonksiyon False döndürürse, o sayıyı çıkarır
Bunu bir süzgeç gibi düşünebilirsiniz:
- 1 sayısı girer →
is_evenFalse döndürür → sayı elenir - 2 sayısı girer →
is_evenTrue döndürür → sayı tutulur
- 3 sayısı girer →
is_evenFalse döndürür → sayı elenir Ve bu şekilde devam eder...
Ayrı bir fonksiyon tanımlamak yerine hızlı, tek satırlık bir fonksiyon (lambda olarak adlandırılır) da kullanabilirsiniz:
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(lambda n: n % 2 == 0, numbers)
print(list(even_numbers))
# Çıktı: [2, 4, 6]filter() işlevi yalnızca sayılarla değil, her türlü öğe koleksiyonuyla çalışır. İşte dizelerle ilgili bir örnek:
words = ["apple", "banana", "cherry", "date"]
long_words = filter(lambda word: len(word) > 5, words)
print(list(long_words))
# Çıktı: ["banana", "cherry"]Görev
Kolaystrings dizisini bağımsız değişken olarak alan get_long_strings adlı bir fonksiyon oluşturun. Fonksiyon, uzunluğu 5'ten büyük olan dizeleri seçmek için bir lambda fonksiyonuyla birlikte filter() fonksiyonunu kullanmalıdır. Fonksiyon, seçilen dizeleri içeren bir liste döndürmelidir.
Kendin dene
def get_long_strings(strings):
# Uzunluğu 5'ten büyük string'leri seçmek için filter() ile bir lambda fonksiyonu kullan
# Aşağıdaki boş listeyi o ifadeyle değiştir
long_strings = []
# Seçilen string'lerin listesini döndür
return list(long_strings)Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1Değişken Keşfi
SabitlerÇoklu Değişken AtamalarıDeğişken TakasıYer Tutucu DeğişkenlerSayıları YuvarlamaListe Tür Dönüşümü4Rehber Uygulaması
Menüyü GörüntüleKişi Ekle7Kümeler Bölüm 2
Matematiksel İşlemler Bölüm 1Matematiksel İşlemler Bölüm 2Özet - Hazine AvıAlt Kümeler ve Üst KümelerKümeler Üzerinde YinelemeÖzet - Turnuva Takipçisi10Temel List Comprehension Yapıları
SözdizimiBasit Listeler OluşturmaKoşul EklemeVeri Toplulaştırma KullanımıÖzet - Liste EviÖzet - Özgürlük Elementleri13Envanter Yönetim Sistemi
Projeye Genel BakışÖğe Ekle2Sözlükler Bölüm 1
Sözlük Nedir?Sözlük OluşturmaDeğerlere ErişmeSözlükleri DeğiştirmeÖzet - Tarif Yöneticisi5İleri Seviye Karar Yapıları
Ternary OperatörüÜyelik KontrolleriKimlik KontrolleriGirintileme HatalarıÖzet - Tatil Filtresi8Öğrenci Kayıt Yöneticisi
Projeye Genel BakışÖğrenci Ekle11İleri Seviye Fonksiyonlar
Birden Fazla Değer DöndürmeLambda Fonksiyonları Bölüm 1Lambda Fonksiyonları Bölüm 2Tekrar Görevi - Lambda ile SıralamaÖzyinelemeli Fonksiyonlar Bölüm 1Özyinelemeli Fonksiyonlar Bölüm 2Tekrar - İç İçe Listeleri Toplama14Yüksek Mertebeden Fonksiyonlar
Map FonksiyonuFilter FonksiyonuÖzet - E-posta DoğrulayıcıÖzet - Sayı İşleyici3Sözlükler Bölüm 2
Sözlük Metotlarıİç İçe SözlüklerAnahtar KontrolüSözlüklerde DöngülerÖzet - Frekans Sayacı9İleri Düzey Veri Toplulaştırma
Toplam KullanımıMinimum ve Maksimumu BulmaVerileri Verimli SıralamaÖzet - Dictionary SıralayıcıKendi başına pratik yap: Online Python derleyicisi