Python'da filter() Fonksiyonu Nasıl Kullanılır
Koleksiyonlardan öğeleri çıkarmak için Python'un filter() işlevini nasıl kullanacağınızı öğrenin. Filtreyi liste kavramaları ve lambda geri aramalarıyla karşılaştırın.
Genel Bakış
Veri filtreleme, uygulama programlamada temel bir görevdir. Çoğu zaman bir listede arama yapmanız ve profil veritabanından aktif kullanıcıları ayıklamak veya sensör günlüklerinden negatif sayıları filtrelemek gibi belirli kriterleri karşılayan öğeleri ayıklamanız gerekecektir. Python bu amaç için 'filter()' adında yerleşik bir işlevsel araç sağlar.
'filter(function, iterable)' işlevi, bir filtreleme işlevini ve yinelenebilir bir işlevi argüman olarak alır. İşlev bağımsız değişkeni, her öğe için bir boole değeri ("Doğru" veya "Yanlış") döndürmelidir. 'filter()' işlevi, yalnızca 'Doğru' olarak değerlendirilenleri koruyarak her bir öğeyi değerlendirir ve sonuçları içeren bir yineleyici nesne (bir 'filtre' nesnesi) döndürür.
'map()' gibi, 'filter()' da öğeleri tembel bir şekilde değerlendirir. Hemen standart bir listeye ihtiyacınız varsa, çıktıyı 'list()' yapıcısını kullanarak yayınlarsınız: 'list(filter(func, data))'. İşlev parametresi olarak 'Yok'u iletirseniz (örneğin, 'filter(None, data)'), Python sahte olan tüm öğeleri otomatik olarak filtreleyecektir; bu, boş değerleri temizlemek için harika bir kısayoldur.
Kod ve Yürütme Çıkışı
Bu komut dosyası, filter() ile sayısal dizilerin filtrelenmesini, sözlük öğelerinin çıkarılmasını ve sahte boş dizelerin atılmasını gösterir.
numbers = [-5, -2, 0, 3, 8, -1]
# 1. Filter positive numbers using a lambda function
positives = list(filter(lambda x: x > 0, numbers))
print("Positives only:", positives)
# 2. Filter list of strings by character length
words = ["cat", "elephant", "dog", "giraffe"]
long_words = list(filter(lambda w: len(w) > 4, words))
print("Words longer than 4 chars:", long_words)
# 3. Shorthand: Remove all falsy values from a list by passing None
mixed_data = ["hello", "", "world", None, False, "active"]
clean_data = list(filter(None, mixed_data))
print("Falsy values removed:", clean_data)Positives only: [3, 8]
Words longer than 4 chars: ['elephant', 'giraffe']
Falsy values removed: ['hello', 'world', 'active']Adım Adım Uygulama
- Bir öğeyi kabul eden ve filtre kriterlerini temsil eden bir boole değeri döndüren bir işlev tanımlayın.
- Eşleşmelerin tembel bir yineleyicisini oluşturmak için filter(function, yinelenebilir) öğesini çağırın.
- Kayıtları değiştirmeniz gerekiyorsa, ortaya çıkan filtre nesnesini list(filter(...)) kullanarak bir listeye yayınlayın.
- Tüm sahte değerleri (Yok, 0 ve boş dizeler gibi) filtrelemek için işlev bağımsız değişkeni olarak Yok'u iletin.
Sıkça Sorulan Sorular
Filter() işlevine iletilen işlev bir boole değeri döndürmezse ne olur?
Python, döndürülen değerin doğruluğunu değerlendirir. Değer Boole bağlamında True olarak değerlendirilirse öğe korunur.
Filter() veya liste kavrama kullanmalı mıyım?
If koşuluyla bir liste kavrama (örneğin, [list if koşulunda x için x]) okunabilirlik açısından sıklıkla tercih edilir, ancak filter(), özellikle mevcut yerleşik işlevler kullanıldığında temiz ve yüksek performanslıdır.
İlgili Konular
Python'da lambda işlevlerinin nasıl kullanılacağını öğrenin. Lambda tuşlarıyla anonim işlevlerde, satır içi geri aramalarda ve liste verilerini sıralamada uzmanlaşın.
Python'da Liste Anlama Nasıl Kullanılır?Python'da liste kavramalarını nasıl kullanacağınızı öğrenin. Kısa döngüler yazın, koşullu filtreler uygulayın ve temiz görsel sözdizimiyle matrisler oluşturun.
Python'da Map() Fonksiyonu Nasıl Kullanılır?Python'un map() fonksiyonunu nasıl kullanacağınızı öğrenin. Döngü yazmadan yinelenebilir öğelere işlevler uygulama konusunda uzmanlaşın ve haritayı liste kavramalarıyla karşılaştırın.
Önerilen Python Kaynakları
İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.
Python İşlevleri
Python fonksiyonlarında ustalaşın. Def kullanarak yeniden kullanılabilir kod yazmayı, bağımsız değişkenleri tanımlamayı, değerleri döndürmeyi ve kapsamı yerel ve genel olarak nasıl anlayacağınızı öğrenin.
Python Matematik Modülü İşlevleri Hile Sayfası
Python matematik standart kütüphanesi için hızlı başvuru kılavuzu. Trigonometrik, logaritmik, yuvarlama ve aritmetik fonksiyonların nasıl kullanılacağını öğrenin.
Python vs JavaScript: Hangi Programlama Dili En İyisidir?
Python ve JavaScript arasında kapsamlı bir karşılaştırma. Sözdizimi farklılıklarını, performansı, kullanım örneklerini (arka uç ve ön uç) ve kodlama örneklerini keşfedin.