Di mana fungsi lambda digunakan dalam python?

Fungsi Lambda, juga disebut sebagai 'Fungsi Anonim' sama dengan fungsi python biasa tetapi dapat didefinisikan tanpa nama

1. Apa itu Fungsi Lambda di Python?

Fungsi Lambda, juga disebut sebagai 'Fungsi Anonim' sama dengan fungsi python biasa tetapi dapat didefinisikan tanpa nama. Sementara fungsi normal didefinisikan menggunakan kata kunci

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
_8, fungsi anonim didefinisikan menggunakan kata kunci
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
9. Namun, mereka dibatasi untuk satu baris ekspresi. Mereka dapat mengambil beberapa parameter seperti pada fungsi biasa

2. Sintaks Fungsi Lambda

Sintaks untuk fungsi ________0______9 diberikan oleh.

Using def:  25
1 Perhatikan, bisa ada sejumlah argumen tetapi hanya bisa berisi satu ekspresi. Tidak ada pernyataan
Using def:  25
_2 yang biasanya ada dalam sintaks fungsi
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
8. Fungsi hanya akan mengembalikan nilai ekspresi meskipun tidak ada pernyataan
Using def:  25
2

Isi

  1. Cara menggunakan fungsi lambda. Contoh Sederhana

3. Kebutuhan akan Fungsi Lambda

Setidaknya ada 3 alasan

    1. Fungsi Lambda mengurangi jumlah baris kode jika dibandingkan dengan fungsi python normal yang ditentukan menggunakan kata kunci
      # calculate squares using def
      def squares_def(x):
          return x*x
      print('Using def: ', squares_def(5))
      
      8. Tapi ini tidak sepenuhnya benar karena, bahkan fungsi yang didefinisikan dengan
      # calculate squares using def
      def squares_def(x):
          return x*x
      print('Using def: ', squares_def(5))
      
      8 dapat didefinisikan dalam satu baris tunggal. Namun umumnya,
      # calculate squares using def
      def squares_def(x):
          return x*x
      print('Using def: ', squares_def(5))
      
      8 fungsi ditulis lebih dari 1 baris
    2. Umumnya digunakan saat suatu fungsi dibutuhkan sementara untuk waktu yang singkat, sering digunakan di dalam fungsi lain seperti
      # calculate squares using def in one line
      def squares_def(x): return x*x
      
      print('Using def: ', squares_def(5))
      
      4 ,
      # calculate squares using def in one line
      def squares_def(x): return x*x
      
      print('Using def: ', squares_def(5))
      
      5 and
      # calculate squares using def in one line
      def squares_def(x): return x*x
      
      print('Using def: ', squares_def(5))
      
      6.
    3. Menggunakan fungsi lambda, Anda dapat menentukan fungsi dan langsung memanggilnya di akhir definisi. Ini tidak dapat dilakukan dengan fungsi
      # calculate squares using def
      def squares_def(x):
          return x*x
      print('Using def: ', squares_def(5))
      
      8 .

Mari kita lihat lebih lanjut tentang penerapannya di python

4. Cara menggunakan fungsi lambda. Contoh Sederhana

Anda tidak perlu menentukan nama untuk fungsi seperti yang dibahas di atas tentang sintaks fungsi

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
9. Mari kita coba mendefinisikan fungsi untuk menghitung kuadrat dari nilai yang diberikan

# calculate squares using lambda
squares = lambda x: x*x
print('Using lambda: ', squares(5))
Using lambda:  25

Mari kita lihat juga bagaimana melakukan fungsi yang sama menggunakan kata kunci

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
8, dan membandingkannya

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))

Keluaran

Using def:  25

Lakukan hal yang sama dalam satu baris

# calculate squares using def in one line
def squares_def(x): return x*x

print('Using def: ', squares_def(5))
Using def:  25

Lihat bahwa saat menggunakan kata kunci

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
_8, kami mengembalikan nilai tertentu
Using def:  25
1. Dalam kasus fungsi
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
_9, ekspresi
Using def:  25
1akan dikembalikan tanpa menulis pernyataan pengembalian eksplisit. Umumnya dalam penggunaan normal, tidak banyak perbedaan dalam penggunaan kata kunci
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
8 dan
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
9. Keduanya sebenarnya adalah fungsi. Mari kita lihat tipe mereka

# Types
print(type(squares))
print(type(squares_def))
<class 'function'>
<class 'function'>

Keduanya milik kelas

Using def:  25
_6

5. Secara internal, fungsi lambda dan def bekerja persis sama

Untuk memeriksa cara kerjanya secara internal, gunakan kata kunci

Using def:  25
7.
Using def:  25
7 kata kunci akan mengekspos versi bytecode python yang dapat dibaca yang memungkinkan pemeriksaan instruksi

# Bytecode instructions of lambda function
import dis
dis.dis(squares)
  2           0 LOAD_FAST                0 (x)
              2 LOAD_FAST                0 (x)
              4 BINARY_MULTIPLY
              6 RETURN_VALUE

Bytecode untuk fungsi `def` biasa

Using lambda:  25
0
  2           0 LOAD_FAST                0 (x)
              2 LOAD_FAST                0 (x)
              4 BINARY_MULTIPLY
              6 RETURN_VALUE

Perhatikan bahwa proses yang dilakukan oleh kedua fungsi tersebut sama persis. Jadi, tidak ada perbedaan nyata dalam cara mereka mengeksekusi.  

6. Fungsi Lambda dapat memiliki 0 atau 1 ekspresi, tidak lebih

  1. Tanpa ekspresi. tidak berisi ekspresi, akan memberikan keluaran yang sama untuk semua argumen
Using lambda:  25
_2

Keluaran

Program Ilmuwan Data Industri MLPlus

Apakah Anda ingin belajar Ilmu Data dari Ilmuwan Data berpengalaman?

Bangun karir ilmu data Anda dengan kualifikasi yang diakui secara global dan diakui industri. Selesaikan proyek dengan data perusahaan nyata dan jadilah Ilmuwan Data bersertifikat dalam waktu kurang dari 12 bulan.

Di mana fungsi lambda digunakan dalam python?

Dapatkan Kursus Python Lengkap Gratis

Bangun karir ilmu data Anda dengan kualifikasi yang diakui secara global dan diakui industri. Dapatkan pola pikir, kepercayaan diri, dan keterampilan yang membuat Data Scientist begitu berharga

Using lambda:  25
_3
  1. Ekspresi tunggal. Mereka dapat berisi salah satu ekspresi atau tanpa ekspresi. Kami tidak dapat menempatkan lebih dari satu ekspresi dalam fungsi lambda
________16
Using def:  25
_16_______5

7. Fungsi Lambda dapat Segera Dipanggil

Anda dapat mengimplementasikan fungsi lambda tanpa menggunakan nama variabel. Anda juga bisa langsung meneruskan nilai argumen ke fungsi

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
9 tepat setelah mendefinisikannya menggunakan paranthesis. Ini tidak dapat dilakukan dengan menggunakan fungsi ________0______8

Using lambda:  25
_6

Ini tidak bekerja dengan fungsi

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
8

Using lambda:  25
_7

8. Dimungkinkan untuk menulis fungsi tingkat tinggi menggunakan lambda

Fungsi lambda dapat mengambil fungsi lain sebagai argumen. Mari kita lihat contoh fungsi lambda bersarang, fungsi lambda di dalam fungsi lambda lainnya

Using lambda:  25
_8

Lihat bahwa saya telah melewati fungsi lambda lain untuk menghitung kuadrat sebagai argumen ke variabel

# Types
print(type(squares))
print(type(squares_def))
2 func

9. Fungsi Lambda menerima semua jenis argumen, sama seperti fungsi def biasa

Fungsi

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
_9 mendukung semua jenis argumen seperti fungsi
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
8 normal. 1. Argumen Kata Kunci.
# Types
print(type(squares))
print(type(squares_def))
5 adalah argumen yang didahului oleh pengidentifikasi (mis. g. name=) dalam pemanggilan fungsi. Argumen bernama. Contoh

Using lambda:  25
_9

Daftar variabel Argumen. Contoh

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
0

Daftar variabel argumen kata kunci. Contoh

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
_1

2. Argumen posisi.

# Types
print(type(squares))
print(type(squares_def))
6 adalah argumen yang bukan argumen kata kunci

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
_2

10. Anda dapat menggunakan fungsi # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) _9 di Using def: 25 6

Using def:  25
6 fungsi digunakan untuk memfilter iterable yang diberikan (daftar seperti objek) menggunakan fungsi lain yang mendefinisikan logika pemfilteran. Fungsi lambda biasanya digunakan untuk mendefinisikan logika pemfilteran dan diteruskan sebagai argumen pertama dari
Using def:  25
6. Iterable like a list object diteruskan sebagai argumen kedua ke fungsi
# calculate squares using def in one line
def squares_def(x): return x*x

print('Using def: ', squares_def(5))
4

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
_3

11. Anda dapat menggunakan fungsi # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) _9 di Using def: 25 8

Using def:  25
8 fungsi menerapkan fungsi yang diberikan untuk semua item dalam daftar dan mengembalikan hasilnya. Mirip dengan
Using def:  25
_6, cukup berikan fungsi lambda dan daftar (atau iterable, seperti tuple) sebagai argumen

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
_4

12. Anda dapat menggunakan fungsi # calculate squares using def def squares_def(x): return x*x print('Using def: ', squares_def(5)) _9 di # calculate squares using def in one line def squares_def(x): return x*x print('Using def: ', squares_def(5)) 0 juga

# calculate squares using def in one line
def squares_def(x): return x*x

print('Using def: ', squares_def(5))
_0 fungsi melakukan operasi berulang atas pasangan elemen dalam daftar. Lewati fungsi
# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
_9 dan daftar sebagai argumen ke fungsi
# calculate squares using def in one line
def squares_def(x): return x*x

print('Using def: ', squares_def(5))
0. Untuk menggunakan fungsi
# calculate squares using def in one line
def squares_def(x): return x*x

print('Using def: ', squares_def(5))
_0, Anda perlu mengimpor
# calculate squares using def in one line
def squares_def(x): return x*x

print('Using def: ', squares_def(5))
6 dari perpustakaan ________ 33 _______3

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
5

Lihat bahwa fungsi

# calculate squares using def in one line
def squares_def(x): return x*x

print('Using def: ', squares_def(5))
0 secara iteratif mengalikan elemen-elemen dalam daftar.
# Bytecode instructions of lambda function
import dis
dis.dis(squares)
_5 dan seterusnya

13. Cara menggunakan fungsi lambda untuk memanipulasi Dataframe

Anda juga dapat memanipulasi kolom kerangka data menggunakan fungsi

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
9. Ini adalah kandidat yang bagus untuk digunakan di dalam metode
# Bytecode instructions of lambda function
import dis
dis.dis(squares)
7 dari kerangka data. Saya akan mencoba menambahkan baris baru di kerangka data di bagian ini sebagai contoh

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
_6

FirstSecondThirdForth012361456120

Saat digunakan dengan

# Bytecode instructions of lambda function
import dis
dis.dis(squares)
_8 ini menerapkan fungsi lambda ke setiap elemen kerangka data

# calculate squares using def
def squares_def(x):
    return x*x
print('Using def: ', squares_def(5))
_7

FirstSecondThirdForth014936116253614400

Kesimpulan

Semoga Anda mengerti apa itu fungsi lambda dan bagaimana Anda dapat menggunakannya dalam berbagai situasi. Cobalah latihan berikut untuk menguji pemahaman Anda

Di mana Fungsi Lambda berguna?

Fungsi Lambda dimaksudkan sebagai singkatan untuk mendefinisikan fungsi yang berguna untuk menulis kode ringkas tanpa membuang banyak baris untuk mendefinisikan fungsi . Mereka juga dikenal sebagai fungsi anonim, karena mereka tidak memiliki nama kecuali diberi nama.

Apa manfaat fungsi lambda di Python?

Lambda membantu Anda menggunakan fungsi hanya sekali, dan karenanya, menghindari kekacauan kode dengan definisi fungsi . Singkatnya, kata kunci lambda Python memungkinkan Anda menentukan fungsi dalam satu baris kode dan segera menggunakannya.