Filter () yöntemi, bir işlevin true döndürdüğü bir yinelenebilir öğenin öğelerinden bir yineleyici oluşturur.
Basit bir deyişle, filter()
yöntem, yinelenebilirdeki her bir öğeyi doğru olup olmadığını test eden bir işlevin yardımıyla verilen yinelenebilirliği filtreler.
filter()
Yöntemin sözdizimi şöyledir:
filtre (işlev, yinelenebilir)
filter () Parametreler
filter()
yöntem iki parametre alır:
- işlev - yinelenebilir bir öğenin doğru veya yanlış döndürüp döndürmediğini test
eden işlev Yok ise, işlev varsayılan olarak Kimlik işlevidir - herhangi bir öğe yanlışsa yanlış döndürür - yinelenebilir - filtrelenecek yinelenebilir, herhangi bir yineleyicinin kümeleri, listeleri, başlıkları veya kapsayıcıları olabilir
Filtreden dönüş değeri ()
filter()
yöntem, yinelenebilirdeki her öğe için işlev denetimini geçen bir yineleyici döndürür.
filter()
yöntem şuna eşdeğerdir:
# işlev tanımlandığında (yinelenebilen öğe için öğe, işlev (öğe) ise) # işlev Yok olduğunda (öğe ise yinelenebilen öğe için öğe)
Örnek 1: Tekrarlanabilir liste için filter () nasıl çalışır?
# list of letters letters = ('a', 'b', 'd', 'e', 'i', 'j', 'o') # function that filters vowels def filterVowels(letter): vowels = ('a', 'e', 'i', 'o', 'u') if(letter in vowels): return True else: return False filteredVowels = filter(filterVowels, letters) print('The filtered vowels are:') for vowel in filteredVowels: print(vowel)
Çıktı
Filtrelenmiş ünlüler şunlardır: aeio
Burada bir harf listemiz var ve sadece içindeki ünlüleri filtrelememiz gerekiyor.
Harf listesindeki her bir öğeyi döngülemek ve başka bir listede saklamak için bir for döngüsü kullanabilirdik, ancak Python'da bu işlem filter()
yöntemi kullanarak daha kolay ve daha hızlıdır .
filterVowels
Bir harfin sesli olup olmadığını kontrol eden bir fonksiyonumuz var. Bu fonksiyon, filter()
harflerin listesi ile metoda aktarılır .
filter()
yöntem daha sonra her harfi filterVowels()
doğru döndürüp döndürmediğini kontrol etmek için yönteme iletir. Sonunda, doğruya dönenlerin (ünlüler) bir yineleyicisini yaratır.
Yineleyici değerlerin kendisini saklamadığından, onun üzerinden geçer ve sesli harfleri tek tek yazdırırız.
Örnek 2: filter () yöntemi, filtre işlevi olmadan nasıl çalışır?
# random list randomList = (1, 'a', 0, False, True, '0') filteredList = filter(None, randomList) print('The filtered elements are:') for element in filteredList: print(element)
Çıktı
Filtrelenen öğeler şunlardır: 1 a Doğru 0
Burada, randomList'te rastgele bir sayı, dize ve boole listesi var.
RandomList'i filter()
ilk parametresi (filtre işlevi) olan yönteme None olarak iletiyoruz .
Yok olarak filtre işleviyle, işlev varsayılan olarak Kimlik işlevine döner ve randomList'teki her öğenin doğru olup olmadığı kontrol edilir.
Son filteredList'te döngü yaptığımızda, true olan öğeleri elde ederiz: 1, a, True and '0'
(bir dizge olarak '0' da doğrudur).