Menu
Coddy logo textTech

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:

  1. Bir işlev (her öğeyi kontrol etmeye yönelik talimatları içerir)
  2. Öğ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. 1 sayısı girer → is_even False döndürür → sayı elenir
  2. 2 sayısı girer → is_even True döndürür → sayı tutulur
  1. 3 sayısı girer → is_even False 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"]
challenge icon

Görev

Kolay

strings 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)
quiz iconKendini test et

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

Kendi başına pratik yap: Online Python derleyicisi