Bagaimana Anda memfilter daftar menggunakan ekspresi lambda dengan python?

Sampul artikel hari ini menggunakan fungsi lambda, peta, dan filter dengan Python. Kami akan membahas sintaks dasar masing-masing dan menelusuri beberapa contoh untuk membiasakan diri Anda menggunakannya. Mari kita mulai

Lambda

Operator lambda_ atau fungsi lambda digunakan untuk membuat objek fungsi kecil, satu kali, anonim dengan Python

Sintaks Dasar

lambda arguments : expression

Operator lambda_ dapat memiliki sejumlah argumen tetapi hanya dapat memiliki satu ekspresi. Itu tidak dapat berisi pernyataan apa pun dan mengembalikan objek fungsi yang dapat ditugaskan ke variabel apa pun

Contoh

Mari kita lihat sebuah fungsi di Python

Nama fungsi di atas adalah add, ia mengharapkan dua argumen x dan y dan mengembalikan jumlahnya

Mari kita lihat bagaimana kita dapat mengonversi fungsi di atas menjadi fungsi lambda

Dalam

map(function_object, iterable1, iterable2,...)
0 x dan y adalah argumen untuk fungsi dan
map(function_object, iterable1, iterable2,...)
3 adalah ekspresi yang dieksekusi dan nilainya dikembalikan sebagai output

map(function_object, iterable1, iterable2,...)
_4 mengembalikan objek fungsi yang dapat ditugaskan ke variabel apa pun, dalam hal ini, objek fungsi ditugaskan ke variabel add

Jika kami memeriksa jenis add_, itu adalah

map(function_object, iterable1, iterable2,...)
7

Lebih penting lagi, fungsi lambda diteruskan sebagai parameter ke fungsi yang mengharapkan objek fungsi sebagai parameter seperti fungsi

map(function_object, iterable1, iterable2,...)
9,
filter(function_object, iterable)
0, dan
filter(function_object, iterable)
1

Peta

Sintaks Dasar

map(function_object, iterable1, iterable2,...)
_

map(function_object, iterable1, iterable2,...)
_9 fungsi mengharapkan objek fungsi dan sejumlah
filter(function_object, iterable)
3, seperti
filter(function_object, iterable)
4,
filter(function_object, iterable)
5, dll. Itu mengeksekusi
filter(function_object, iterable)
_6 untuk setiap elemen dalam urutan dan mengembalikan
filter(function_object, iterable)
4 elemen yang dimodifikasi oleh objek fungsi

Contoh

Dalam contoh di atas,

map(function_object, iterable1, iterable2,...)
_9 mengeksekusi fungsi
filter(function_object, iterable)
9 untuk setiap elemen dalam daftar, lambda0, dan mengembalikan lambda1

Mari kita lihat bagaimana kita dapat menulis kode di atas menggunakan

map(function_object, iterable1, iterable2,...)
9 dan lambda

Hanya satu baris kode

Mengulang Kamus Menggunakan Peta dan Lambda

Dalam contoh di atas, setiap lambda_4 dari lambda5 akan diteruskan sebagai parameter ke fungsi lambda. Hasil ekspresi fungsi lambda_ untuk setiap lambda4 akan diberikan sebagai output

Beberapa Iterable ke Fungsi Peta

Kami dapat meneruskan beberapa urutan ke fungsi

map(function_object, iterable1, iterable2,...)
_9 seperti yang ditunjukkan di bawah ini

Di sini, setiap elemen lambda0 dari lambda1 dan lambda2 akan diteruskan sebagai argumen ke fungsi lambda

Di Python3, fungsi

map(function_object, iterable1, iterable2,...)
9 mengembalikan lambda5 atau lambda6 yang dievaluasi dengan malas, mirip dengan bagaimana fungsi lambda7 dievaluasi. Evaluasi malas dijelaskan lebih rinci dalam artikel fungsi lambda7

Kami tidak dapat mengakses elemen lambda_6 dengan indeks atau menggunakan lambda0 untuk menemukan panjang lambda6

Namun, kami dapat memaksa mengubah output

map(function_object, iterable1, iterable2,...)
_9, yaitu. e. lambda6, ke
filter(function_object, iterable)
4 seperti yang ditunjukkan di bawah ini

Saring

Sintaks Dasar

filter(function_object, iterable)
_

Fungsi

filter(function_object, iterable)
1 mengharapkan dua argumen.
filter(function_object, iterable)
_6 dan iterable.
filter(function_object, iterable)
6 mengembalikan nilai boolean dan dipanggil untuk setiap elemen lambda8.
filter(function_object, iterable)
1 mengembalikan hanya elemen-elemen yang
filter(function_object, iterable)
6 mengembalikan add1

Seperti fungsi

map(function_object, iterable1, iterable2,...)
_9, fungsi
filter(function_object, iterable)
1 juga mengembalikan daftar elemen. Tidak seperti
map(function_object, iterable1, iterable2,...)
_9, fungsi
filter(function_object, iterable)
1 hanya dapat memiliki satu lambda8 sebagai masukan

Contoh

Angka genap menggunakan fungsi

filter(function_object, iterable)
1

Saring

filter(function_object, iterable)
4 dari add9

Mirip dengan

map(function_object, iterable1, iterable2,...)
_9, fungsi
filter(function_object, iterable)
1 di Python3 mengembalikan x2 atau iterator yang dievaluasi dengan malas. Kami tidak dapat mengakses elemen x_2 dengan indeks, kami juga tidak dapat menggunakan lambda0 untuk menemukan panjang fx5

Jika Anda menikmati artikel ini, silakan sebarkan. Untuk mendapatkan pembaruan untuk cerita baru saya, ikuti saya di media dan twitter

Bagaimana Anda memfilter daftar dalam fungsi Python?

Menggunakan metode filter() . Itu membutuhkan fungsi filter dan list `filter(fn, list)` . Dalam kasus kami, kami akan membuat fungsi filter_height. Itu mengembalikan Benar ketika tingginya kurang dari 150 yang lain Salah.

Bagaimana Anda menerapkan filter ke daftar?

Pada tab Data, di grup Urutkan & Filter, klik Filter
Klik tanda panah. di header kolom untuk menampilkan daftar tempat Anda dapat membuat pilihan filter. Catatan Bergantung pada tipe data dalam kolom, Microsoft Excel menampilkan Filter Angka atau Filter Teks dalam daftar

Apa itu filter lambda?

Kita dapat menggunakan fungsi Lambda di dalam fungsi bawaan filter() untuk menemukan semua bilangan yang habis dibagi 13 dalam daftar . Dalam Python, fungsi anonim berarti suatu fungsi tanpa nama. Fungsi filter() di Python menggunakan fungsi dan daftar sebagai argumen.

Bisakah kita meneruskan daftar ke fungsi lambda?

Dimungkinkan untuk meneruskan daftar ke fungsi lambda , tetapi tidak mungkin menggunakan daftar dengan operator **.