Python'un yerleşik filter() işlevi de güçlüdür; listeler, tuple'lar ve dizeler gibi dizilerde veri filtreleme prosedürünü gerçekleştirmek için. Filter() işlevi, yinelenebilir bir öğenin her bir öğesine (bir liste veya tanımlama grubu gibi) bir işlev uygulamak ve yalnızca işlevin True'yu geri getirdiği öğeleri içeren başka bir yinelenebilir öğeyi döndürmek için kullanılır. Bu doğrultuda, filter() işlevi, bazı koşullara dayalı olarak bir gruplandırmadaki öğeleri filtrelememize olanak tanır. İşlev mevcut değilse ve yalnızca Doğru olan öğeleri döndürüyorsa ilk bağımsız değişken Yok olabilir.
Sözdizimi:
filter (function, iterable)
Parametreler
işlev: Bu bir fonksiyondur. Hiçbiri olarak ayarlanırsa yalnızca Doğru olan öğeleri döndürür.
Tekrarlanabilir: Liste, tanımlama grubu ve dize gibi yinelenebilir herhangi bir dizi.
Her iki parametre de gereklidir.
Geri dönmek
İşlev tarafından döndürülen şeyin aynısını döndürür.
İşlevselliğini anlamak için filter() işlevinin bazı örneklerine bakalım.
Python filter() İşlev Örneği 1
Bu basit örnek, filtre işlevini kullanarak 5'ten büyük değerleri döndürür. Aşağıdaki örneğe bakın.
Kod
# Python filter() function example def filterdata(x): if x>5: return x # Calling function result = filter(filterdata,(1,2,6)) # Displaying result print(list(result))
Çıktı:
java taraması.sonraki dize
[6]
Kod, tek bir x argümanını alan, filterdata adı verilen bir işlevi tanımlar. Bu fonksiyonda x'in 5'ten büyük olduğunu varsayarak kontrol ediyoruz ve bunun doğru olması durumunda x'i yazdırıyoruz. Daha sonra, ana argüman olarak filterdata'yı ve sonraki argüman olarak bir tuple'ı (1, 2, 6) geçirerek filter() işlevini çağırırız. filter() işlevi, filterdata() işlevini tuple'ın her öğesine uygular ve yalnızca x > 5 koşulunu karşılayan öğeleri içeren bir yineleyici döndürür. Son olarak, yineleyiciyi list() işlevini kullanarak bir listeye dönüştürürüz. ve sonucu yazdırın.
Aşağıda Python'da filter() yönteminin nasıl kullanılacağına ilişkin birkaç ek örnek verilmiştir:
Örnek 2:
Bir listeden boş dizeleri filtreleyin:
Kod
rhel vs centos
# Python filter() function example strings = [ '', 'hello', '', 'world', '' ] # Using filter() to remove empty strings from the list result = list(filter(lambda x: x != '', strings)) # Printing the result print(result)
Çıktı:
[ 'hello', 'world' ]
Bu örnekte lambda işlevi, her dizenin boş olmaması durumunu, boş dizeye ('') eşdeğer olduğunu varsayarak test ederek kontrol eder. Filter() işlevi, yalnızca boş olmayan dizeleri içeren başka bir yinelenebilir öğeyi döndürür.
Örnek 3:
Negatif sayıları listeden filtreleyin:
Kod
# Python filter() function example numbers = [ 1, -2, 3, -4, 5, -6 ] # Using filter() to remove negative numbers from the list result = list(filter(lambda x: x >= 0, numbers)) # Printing the result print(result)
Çıktı:
[1, 3, 5]
Bu örnekte lambda işlevi, sıfırdan (0) daha belirgin veya ona eşdeğer olup olmadığını test ederek her sayının negatif olmadığını varsayarak kontrol eder. Filter() işlevi, yalnızca negatif olmayan sayıları içeren başka bir yinelenebilir öğeyi döndürür.
Örnek 4:
Listedeki kopyaları filtreleyin:
Kod
# Python filter() function example numbers = [ 1, 2, 3, 2, 4, 3, 5 ] # Using filter() to remove duplicate numbers from the list result = list(filter(lambda x: numbers.count(x) == 1, numbers)) # Printing the result print(result)
Çıktı:
[ 1, 4, 5 ]
Bu örnekte lambda işlevi, her sayının sayı listesinde yalnızca tek bir kez görünüp görünmediğini, ne sıklıkta göründüğünü sayarak (numbers.count(x)) kontrol eder ve sayının şuna eşdeğer olup olmadığını test eder: 1. Filter() işlevi, yalnızca benzersiz sayıları içeren başka bir yinelenebilir öğeyi döndürür.
Not: Python 3'te, filter() işlevinin yinelenebilir bir işlev döndürmesi önemlidir ve bu, onu bir liste olarak dahil etmek için onu gerçekten tamamen bir listeye (yukarıdaki örneklerde gösterildiği gibi) değiştirmek istediğiniz anlamına gelir. Bununla birlikte, Python 2'de filter() işlevi elbette bir liste döndürür.
Çözüm:
Son olarak, filter() işlevi Python'da veri işleme için güçlü bir araçtır. Yinelenebilir bir durumu önceden tanımlanmış bir koşula göre filtreleyerek, gerçekten istediğiniz verileri hızlı ve etkili bir şekilde ayırabilirsiniz. Aynı şekilde, daha kafa karıştırıcı veri manipülasyonları gerçekleştirmek için filter() işlevini diğer Python işlevleriyle birlikte kullanabilirsiniz.