Cara Menggunakan Fungsi filter() dengan Python
Pelajari cara menggunakan fungsi filter() Python untuk mengekstrak elemen dari koleksi. Bandingkan filter dengan pemahaman daftar dan panggilan balik lambda.
Ikhtisar
Pemfilteran data adalah tugas inti dalam pemrograman aplikasi. Anda sering kali perlu menelusuri daftar dan mengekstrak elemen yang memenuhi kriteria tertentu, seperti mengekstraksi pengguna aktif dari database profil, atau memfilter angka negatif dari log sensor. Python menyediakan alat fungsional bawaan bernama `filter()` untuk tujuan ini.
Fungsi `filter(function, iterable)` menggunakan fungsi pemfilteran dan iterable sebagai argumen. Argumen fungsi harus mengembalikan nilai boolean (`True` atau `False`) untuk setiap elemen. Fungsi `filter()` mengevaluasi setiap elemen, hanya mempertahankan elemen yang bernilai `True`, dan mengembalikan objek iterator (objek `filter`) yang berisi hasilnya.
Seperti `map()`, `filter()` mengevaluasi elemen dengan malas. Jika Anda memerlukan daftar standar dengan segera, Anda melemparkan output menggunakan konstruktor `list()`: `list(filter(func, data))`. Jika Anda meneruskan `Tidak Ada` sebagai parameter fungsi (misalnya, `filter(Tidak Ada, data)`), Python akan secara otomatis memfilter semua elemen yang salah, yang merupakan cara singkat yang bagus untuk menghapus nilai yang kosong.
Kode & Output Eksekusi
Skrip ini mendemonstrasikan pemfilteran array numerik, mengekstraksi item kamus, dan membuang string kosong palsu dengan filter().
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']Implementasi Langkah demi Langkah
- Tentukan fungsi yang menerima elemen dan mengembalikan nilai boolean yang mewakili kriteria filter.
- Panggil filter(function, iterable) untuk membuat iterator pertandingan yang malas.
- Keluarkan objek filter yang dihasilkan ke daftar menggunakan list(filter(...)) jika Anda perlu memanipulasi catatan.
- Berikan Tidak Ada sebagai argumen fungsi untuk memfilter semua nilai palsu (seperti Tidak Ada, 0, dan string kosong).
Pertanyaan yang Sering Diajukan
Apa yang terjadi jika fungsi yang diteruskan ke filter() tidak mengembalikan boolean?
Python mengevaluasi kebenaran nilai yang dikembalikan. Jika nilainya bernilai True dalam konteks boolean, elemen tersebut dipertahankan.
Haruskah saya menggunakan filter() atau pemahaman daftar?
Pemahaman daftar dengan kondisi if (misalnya, [x untuk x dalam kondisi daftar if]) sering kali lebih disukai agar mudah dibaca, namun filter() bersih dan berperforma tinggi, terutama saat menggunakan fungsi bawaan yang sudah ada.
Topik Terkait
Pelajari cara menggunakan fungsi lambda dengan Python. Kuasai fungsi anonim, panggilan balik sebaris, dan pengurutan data daftar dengan kunci lambda.
Cara Menggunakan Pemahaman Daftar dengan PythonPelajari cara menggunakan pemahaman daftar dengan Python. Tulis loop ringkas, terapkan filter bersyarat, dan buat matriks dengan sintaksis visual yang bersih.
Cara Menggunakan Fungsi map() dengan PythonPelajari cara menggunakan fungsi map() Python. Kuasai penerapan fungsi ke iterable tanpa menulis loop, dan bandingkan peta dengan pemahaman daftar.
Sumber Daya Python yang Direkomendasikan
Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.
Fungsi Python
Fungsi master Python. Pelajari cara menulis kode yang dapat digunakan kembali menggunakan def, menentukan argumen, mengembalikan nilai, dan memahami cakupan lokal dan global.
Lembar
Panduan referensi cepat untuk perpustakaan standar matematika Python. Pelajari cara menggunakan fungsi trigonometri, logaritma, pembulatan, dan aritmatika.
Python vs JavaScript: Bahasa Pemrograman Mana yang Terbaik?
Perbandingan komprehensif antara Python dan JavaScript. Jelajahi perbedaan sintaksis, kinerja, kasus penggunaan (backend vs frontend), dan contoh pengkodean.