Cara Membuat dan Menggunakan Generator Python

Cara Membuat Dan Menggunakan Generator Python



Saat bekerja sebagai pengembang, Anda sering kali harus bekerja dengan banyak nilai data yang tidak signifikan. Menyimpan nilai-nilai tersebut menghabiskan banyak memori, sehingga mengurangi efisiensi kode Anda. Namun, dengan Python, Anda dapat menggunakan generator untuk menghindari kerugian tersebut.

Dengan generator, Anda dapat memproduksi secara massal nilai-nilai urutan tertentu tanpa menyimpannya sama sekali di memori. Selain itu, fungsi “generator” membuat objek yang menghasilkan nilai ketika diiterasi. Jadi, jika Anda ingin mendapatkan generator Python, tutorial ini cocok untuk Anda. Di sini kami akan menjelaskan cara membuat dan menggunakan generator Python.

Cara Membuat dan Menggunakan Generator Python

Generator Python digunakan untuk mengerjakan urutan data secara efektif, terutama ketika berhadapan dengan kumpulan data yang besar atau hampir tak ada habisnya. Manfaat generator Python adalah:







  1. Ringkas: Anda dapat mendefinisikan generator dengan mudah dan ringkas sehingga meningkatkan keterbacaan kode.
  2. Hemat Memori: Mereka menghasilkan satu nilai secara bersamaan yang mengkonsumsi lebih sedikit memori dan meningkatkan efisiensi.
  3. Fungsi bawaan: Di Python, generator memiliki fungsi yang telah ditentukan sebelumnya seperti next(), iter(), dan hasil untuk memudahkan kerjanya.
  4. Fitur jeda dan lanjutkan: Saat mengerjakan algoritme yang kompleks, Anda dapat menggunakan fungsi “hasil” untuk menjeda dan melanjutkan pengoperasian generator.

Anda dapat membuat dan menggunakan generator dengan berbagai cara dengan Python. Kami akan membagi lebih lanjut bagian ini untuk mendemonstrasikan implementasinya menggunakan contoh-contoh yang berbeda. Pertama, mari kita lihat sintaks dasarnya:



def nama_fungsi ( ) :
menghasilkan ekspresi

Kata “def” mendefinisikan suatu fungsi, dan “yield” digunakan untuk membangun fungsi “generator”. Namun, metode lain juga membantu membuat generator hanya menggunakan ekspresi satu baris.



Fungsi Generator untuk Menghasilkan String

Mari kita definisikan fungsi generator untuk menghasilkan beberapa nilai:





def generator ( ) :
menghasilkan 'Ini adalah generator'
untuk nilai di dalam generator ( ) :
mencetak ( nilai )

Saat kita mengulanginya menggunakan loop “for”, program menghasilkan nilai tertentu yang dapat Anda cetak menggunakan fungsi “print”.



Fungsi Generator untuk Membuat Counter

Program berikut adalah contoh fungsi generator untuk menghasilkan barisan bilangan:

def generator_saya ( N ) :
menangkal = 0
ketika menangkal < N:
menghasilkan menangkal
penghitung + = 1
untuk menangkal di dalam generator_saya ( 10 ) :
mencetak ( menangkal )

Misalnya, jika inputnya adalah 10, Anda akan mendapatkan nilai dari 0 hingga 9 saat mengkompilasi kode ini.

Deret Fibonacci Menggunakan Fungsi Generator

Sekarang mari kita gunakan deret Fibonacci yang merupakan deret paling dasar dalam pemrograman:

def seri_fibonacci ( membatasi ) :
Saya , J = 0 , 1
ketika Saya < membatasi:
menghasilkan Saya
Saya , J = J , saya + j

A = seri_fibonacci ( 6 )

mencetak ( Berikutnya ( A ) )
mencetak ( Berikutnya ( A ) )
mencetak ( Berikutnya ( A ) )
mencetak ( Berikutnya ( A ) )
mencetak ( Berikutnya ( A ) )
mencetak ( Berikutnya ( A ) )

Kita akan mendapatkan rangkaiannya sebagai berikut dengan menjalankan kode:

Pertama, buat objek bernama “a” dan panggil fungsi “generator” dengan input yang diinginkan sebagai argumen.

Kata kunci next() adalah iterator manual. Setiap kali kita menggunakan next(a), ia mengulangi satu nilai “a”. Namun, kita dapat menggunakan loop “for” untuk mencetak semua nilai “a” sekaligus seperti yang ditunjukkan pada contoh berikut:

Menggunakan loop “for” alih-alih fungsi next():

def seri_fibonacci ( membatasi ) :
Saya , J = 0 , 1
ketika Saya < membatasi:
menghasilkan Saya
Saya , J = J , saya + j

A = seri_fibonacci ( 6 )
untuk nilai di dalam A :
mencetak ( nilai )

Hasil menjalankan kodenya tidak akan berbeda karena ini merupakan metode alternatif penulisan program sebelumnya:

Apa Ekspresi Generator di Python?

Ekspresi generator Python adalah cara untuk membuat fungsi “generator” secara ringkas menggunakan ekspresi linier. Berikut sintaks sederhananya:

( ekspresi untuk variabel di dalam dapat diubah jika kondisi )

Misalnya, buat ekspresi generator untuk menghitung kuadrat bilangan ganjil dari 0 hingga “n” jika “n” adalah nilai inputnya.

ganjil_kotak = ( x * x untuk X di dalam jangkauan ( 10 ) jika X % 2 != 0 )
untuk nilai di dalam ganjil_kotak:
mencetak ( nilai )

Kode sebelumnya menghasilkan hasil sebagai berikut:

Kesimpulan

Ini semua tentang berbagai metode untuk membuat dan menggunakan generator Python. Kami menjelaskan segalanya tentang ekspresi generator Python. Anda harus menggunakan ekspresi ini jika Anda mempertimbangkan untuk menggunakan generator di salah satu proyek Anda karena generator lebih efisien dalam setiap aspek pemrograman.