Penapis Python ()

Kaedah penapis () membina iterator dari unsur-unsur berulang yang mana fungsi kembali benar.

Dengan kata mudah, filter()kaedah menapis yang diberikan berulang dengan bantuan fungsi yang menguji setiap elemen dalam lelaran itu benar atau tidak.

Sintaks filter()kaedah adalah:

 penapis (fungsi, berulang)

penapis () Parameter

filter() kaedah mengambil dua parameter:

  • fungsi - fungsi yang menguji jika unsur-unsur pengembalian berulang benar atau salah
    Jika Tidak ada, fungsi tersebut secara lalai ke fungsi Identity - yang mengembalikan salah jika ada unsur yang salah
  • iterable - iterable yang hendak disaring, bisa set, daftar, tupel, atau kontena dari iterator apa pun

Nilai pulangan dari penapis ()

filter() kaedah mengembalikan iterator yang lulus pemeriksaan fungsi untuk setiap elemen dalam iterable.

filter() kaedah bersamaan dengan:

 # ketika fungsi didefinisikan (elemen untuk elemen diulang jika fungsi (elemen)) # ketika fungsi Tidak ada (elemen untuk elemen diulang jika elemen)

Contoh 1: Bagaimana penapis () berfungsi untuk senarai berulang?

 # 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)

Pengeluaran

 Vokal yang ditapis adalah: aeio 

Di sini, kita mempunyai senarai huruf dan hanya perlu menyaring huruf vokal di dalamnya.

Kita boleh menggunakan loop untuk melengkung setiap elemen dalam senarai huruf dan menyimpannya dalam senarai lain, tetapi di Python, proses ini lebih mudah dan cepat menggunakan filter()kaedah.

Kami mempunyai fungsi filterVowelsyang memeriksa apakah huruf adalah vokal atau tidak. Fungsi ini diteruskan ke filter()kaedah dengan senarai huruf.

filter()kaedah kemudian meneruskan setiap huruf ke filterVowels()kaedah untuk memeriksa sama ada ia kembali benar atau tidak. Pada akhirnya, ia mewujudkan iterator dari yang kembali benar (vokal).

Oleh kerana iterator tidak menyimpan nilai itu sendiri, kami melengkapkannya dan mencetak vokal satu persatu.

Contoh 2: Bagaimana kaedah filter () berfungsi tanpa fungsi filter?

 # random list randomList = (1, 'a', 0, False, True, '0') filteredList = filter(None, randomList) print('The filtered elements are:') for element in filteredList: print(element)

Pengeluaran

 Elemen yang disaring adalah: 1 a True 0 

Di sini, kami mempunyai senarai nombor, rentetan, dan boolean secara rawak dalam randomList.

Kami meneruskan randomList ke filter()kaedah dengan parameter pertama (fungsi penapis) sebagai Tiada.

Dengan fungsi penapis sebagai Tidak Ada, fungsi tersebut menjadi fungsi Identiti secara lalai, dan setiap elemen dalam Daftar secara rawak diperiksa sama ada benar atau tidak.

Apabila kita melalui senarai terakhir yang disaring, kita akan mendapat elemen yang benar: 1, a, True and '0'('0' sebagai rentetan juga benar).

Artikel menarik...