பைத்தானில் ஜெனரேட்டர்கள் என்றால் என்ன, அவற்றை எவ்வாறு பயன்படுத்துவது?



நன்மைகளுடன் பைதான் ஜெனரேட்டர்கள் என்ன என்பதை அறிக. பல்வேறு பயன்பாட்டு நிகழ்வுகளுடன் அவற்றை எவ்வாறு உருவாக்குவது மற்றும் பயன்படுத்துவது என்பதையும் அறிக.

மறுபிரவேசம் அல்லது பொருள்களை உருவாக்குவது அவற்றின் மீது காலடி எடுத்து வைப்பதை ஒரு சுமையாக கருதப்படுகிறது. ஆனால், இல் , இந்த வேதனையான பணியைச் செயல்படுத்துவது மிகவும் மென்மையானது. எனவே மேலே சென்று பைத்தானில் உள்ள ஜெனரேட்டர்களை உற்று நோக்கலாம்.

இந்த கட்டுரையில் விவரிக்கப்பட்டுள்ள அனைத்து தலைப்புகளின் பட்டியல் இங்கே:





எனவே ஆரம்பிக்கலாம். :)

பைத்தானில் ஜெனரேட்டர்கள் என்றால் என்ன?

ஜெனரேட்டர்கள் அடிப்படையில் பயணிக்கக்கூடிய பொருள்கள் அல்லது உருப்படிகளைத் தரும் செயல்பாடுகளாகும். இந்த செயல்பாடுகள் அனைத்து பொருட்களையும் ஒரே நேரத்தில் உற்பத்தி செய்யாது, மாறாக அவை ஒரு நேரத்தில் ஒன்றை உற்பத்தி செய்கின்றன, தேவைப்படும்போது மட்டுமே. எப்போது உருப்படிகளின் தொகுப்பை மீண்டும் செய்ய சேர்க்கப்பட்டுள்ளது, ஒரு ஜெனரேட்டர் செயல்பாடு இயக்கப்படுகிறது. ஜெனரேட்டர்கள் பல நன்மைகளையும் கொண்டுள்ளன.



ஜெனரேட்டர்களைப் பயன்படுத்துவதன் நன்மைகள்

  • பைத்தானில் ஜெனரேட்டர்கள் இல்லாமல், மறுபயன்பாடுகளை உருவாக்குவது மிகவும் கடினம் மற்றும் நீளமானது.

  • ஜெனரேட்டர்கள் __iter __ (), __ அடுத்த __ () மற்றும் StopIteration ஆகியவற்றை தானாக செயல்படுத்தும்போது செயல்படுத்த எளிதானது, இல்லையெனில், வெளிப்படையாக குறிப்பிடப்பட வேண்டும்.



  • இயல்பானது போலல்லாமல், தேவைப்படும் போது உருப்படிகள் தயாரிக்கப்படுவதால் நினைவகம் சேமிக்கப்படுகிறது . நீங்கள் ஒரு பெரிய எண்ணிக்கையிலான ஐரேட்டர்களை உருவாக்க வேண்டியிருக்கும் போது இந்த உண்மை மிகவும் முக்கியமானது. இது ஜெனரேட்டர்களின் மிகப்பெரிய நன்மையாகவும் கருதப்படுகிறது.

  • எண்ணற்ற பொருட்களை உற்பத்தி செய்ய பயன்படுத்தலாம்.

  • பல செயல்பாடுகளை குழாய் பதிக்கவும் அவை பயன்படுத்தப்படலாம்

ஜெனரேட்டர் செயல்பாடுகளுக்கு எதிராக சாதாரண செயல்பாடுகள்:

பைத்தானில் உள்ள ஜெனரேட்டர்கள் நீங்கள் எவ்வாறு உருவாக்குகிறீர்கள் என்பது போலவே உருவாக்கப்படுகின்றன ‘டெஃப்’ முக்கிய சொல்லைப் பயன்படுத்துகிறது. ஆனால், ஜெனரேட்டர் செயல்பாடுகள் திரும்புவதற்கு பதிலாக மகசூல் திறவுச்சொல்லைப் பயன்படுத்துகின்றன. இது ஒரு செயலாளர் என்பதை மொழிபெயர்ப்பாளருக்கு தெரிவிக்க இது செய்யப்படுகிறது. இது மட்டுமல்ல, அடுத்த () செயல்பாடு அழைக்கப்படும் போது ஜெனரேட்டர் செயல்பாடுகள் இயங்குகின்றன, சாதாரண செயல்பாடுகளைப் போல அவற்றின் பெயரால் அல்ல. இதை நன்கு புரிந்துகொள்ள பின்வரும் எடுத்துக்காட்டைக் கவனியுங்கள்:

உதாரணமாக:

முதுகலை சான்றிதழ் Vs முதுநிலை
def func (a): a = [1,2,3] b = func (a) அடுத்த (b)

வெளியீடு: [1, 2, 3]

நீங்கள் பார்க்க முடியும் என, மேலே உள்ள வெளியீட்டில், ஃபங்க் () மகசூல் திறவுச்சொல்லையும் அதன் செயல்பாட்டிற்கான அடுத்த செயல்பாட்டையும் பயன்படுத்துகிறது. ஆனால், இயல்பான செயல்பாட்டிற்கு உங்களுக்கு பின்வரும் குறியீடு தேவைப்படும்:

உதாரணமாக:

def func (a): a = [1,2,3] func (a)

வெளியீடு: [1, 2, 3]

மேலே உள்ள எடுத்துக்காட்டைப் பார்த்தால், சாதாரண செயல்பாடும் அதே வெளியீட்டைத் தரும்போது ஜெனரேட்டர் செயல்பாட்டை ஏன் பயன்படுத்துவது என்று நீங்கள் யோசித்துக்கொண்டிருக்கலாம். எனவே பைத்தானில் ஜெனரேட்டர்களை எவ்வாறு பயன்படுத்துவது என்பதைப் பார்ப்போம்.

ஜெனரேட்டர் செயல்பாடுகளைப் பயன்படுத்துதல்:

முன்னர் குறிப்பிட்டபடி, பைத்தானில் உள்ள ஜெனரேட்டர்கள் ஒரு நேரத்தில் மறுபயன்பாடுகளை உருவாக்குகின்றன. பின்வரும் எடுத்துக்காட்டைப் பாருங்கள்:

உதாரணமாக:

def myfunc (a): a> = 3: a = a + 1 b = myfunc (a) அச்சு (b) அடுத்த (b)

பின்வரும் செயல்பாட்டை நீங்கள் செயல்படுத்தும்போது, ​​பின்வரும் வெளியீட்டைக் காண்பீர்கள்:

வெளியீடு: 4

இங்கே, ஒரு நிபந்தனை பொருளை திருப்திப்படுத்தியது. செயல்படுத்தப்பட்ட பிறகு, கட்டுப்பாடு அழைப்பாளருக்கு மாற்றப்படும். கூடுதல் உருப்படிகள் தேவைப்பட்டால், அடுத்த () செயல்பாட்டை அழைப்பதன் மூலம் அதே செயல்பாட்டை மீண்டும் செயல்படுத்த வேண்டும்.

அடுத்த (ஆ)

வெளியீடு: 5

மேலும் செயல்படுத்தல்களில், செயல்பாடு 6,7 போன்றவற்றைத் தரும். பைத்தானில் உள்ள ஜெனரேட்டர் செயல்பாடுகள் __iter __ () மற்றும் __ அடுத்த __ () முறைகளை தானாக செயல்படுத்தும். எனவே, அடுத்த () முறையைப் பயன்படுத்துவதன் மூலம் நீங்கள் பொருட்களின் மீது மீண்டும் சொல்லலாம். உருப்படி உருவாக்கம் நிறுத்தப்படும்போது, ​​ஜெனரேட்டர் செயல்பாடுகள் செயல்படுத்தப்படுகின்றன நிறுத்து அழைப்பாளரைப் பற்றி கவலைப்படாமல் உள்நாட்டில். இதற்கு மற்றொரு உதாரணம் இங்கே:

உதாரணமாக:

a = 2 def myfunc (a): a> = 0: a - = 1 b = myfunc (a) அச்சு (b) அடுத்த (b)

வெளியீடு:

பைதான்-எடுரேகாவில் ஸ்டாப்இடரேஷன்-ஜெனரேட்டர்கள்மேலே உள்ள படம் எங்கள் நிரலுக்கு தேவையான எண்ணிக்கையை செயல்படுத்துவதைக் காட்டுகிறது. அடுத்த செயல்பாட்டை மீண்டும் அழைக்க முயற்சித்தால், அது சித்தரிக்கும் செய்தியை வழங்குகிறது நிறுத்து செயல்படுத்தப்பட்டது. சாதாரண செயல்பாடுகளுடன் இதைச் செய்ய நீங்கள் முயற்சித்தால், திரும்பிய மதிப்புகள் மாறாது அல்லது மீண்டும் செயல்படாது. கீழே உள்ள உதாரணத்தைப் பாருங்கள்:

உதாரணமாக:

def z (): n = 1 மகசூல் n n = n + 3 மகசூல் n p = z () அடுத்த (ப)

வெளியீடு:

சுழல்கள் கொண்ட ஜெனரேட்டர்கள்:

ஒரே செயல்பாட்டை ஒரே நேரத்தில் இயக்க விரும்பினால், நீங்கள் ‘for’ லூப்பைப் பயன்படுத்தலாம். இந்த வளையமானது பொருள்களின் மீது மீண்டும் செயல்பட உதவுகிறது மற்றும் அனைத்து செயலாக்கங்களுக்கும் பிறகு அது ஸ்டாப்இடரேஷனை இயக்குகிறது.

உதாரணமாக:

def z (): n = 1 மகசூல் n இல் n (n + 3 விளைச்சல் n இல் x க்கு z (): அச்சு (x)

வெளியீடு:

ஒன்று
4

மீண்டும் செய்யக்கூடிய பொருள்களை உருவாக்க வெளிப்பாடுகளையும் குறிப்பிடலாம்.

ஜெனரேட்டர் வெளிப்பாடுகள்:

ஐரேட்டர்களை உருவாக்க ஃபார் லூப் உடன் வெளிப்பாடுகளையும் பயன்படுத்தலாம். இது வழக்கமாக தலைமுறை மறுபயன்பாடுகளை மிகவும் எளிதாக்குகிறது. ஜெனரேட்டர் வெளிப்பாடு பட்டியல் புரிதல்களை ஒத்திருக்கிறது லாம்ப்டா செயல்பாடுகள் , ஜெனரேட்டர் வெளிப்பாடுகள் அநாமதேய ஜெனரேட்டர் செயல்பாடுகளை உருவாக்குகின்றன.

கீழே உள்ள உதாரணத்தைப் பாருங்கள்:

உதாரணமாக:

a = வரம்பு (6) அச்சு ('பட்டியல் புரிதல்', முடிவு = ':') b = [ஒரு x இல் x க்கு x] 2] அச்சு (ஆ) அச்சு ('ஜெனரேட்டர் வெளிப்பாடு', முடிவு = ': n') c = (a இல் x க்கு x + 2) c இல் y க்கு அச்சிடு (c): அச்சு (y)

வெளியீடு:

பட்டியல் புரிதல்: [2, 3, 4, 5, 6, 7]

ஜெனரேட்டர் வெளிப்பாடு:

2
3
4
5
6

நீங்கள் பார்க்க முடியும் என, மேலே உள்ள வெளியீட்டில், முதல் வெளிப்பாடு ஒரு பட்டியல் புரிதல் ஆகும், இது [] அடைப்புக்குறிக்குள் குறிப்பிடப்பட்டுள்ளது. பட்டியல் புரிதல் ஒரே நேரத்தில் பொருட்களின் முழுமையான பட்டியலை உருவாக்குகிறது. அடுத்தது ஒரு ஜெனரேட்டர் வெளிப்பாடு, இது ஒரே உருப்படிகளைத் தருகிறது, ஆனால் ஒரு நேரத்தில் ஒன்று. இது () அடைப்புக்குறிகளைப் பயன்படுத்தி குறிப்பிடப்பட்டுள்ளது.


ஜெனரேட்டர்செயல்பாடுகளை மற்ற செயல்பாடுகளிலும் பயன்படுத்தலாம்.உதாரணத்திற்கு:

உதாரணமாக:

a = வரம்பு (6) அச்சு ('ஜெனரேட்டர் வெளிப்பாடு', முடிவு = ': n') c = (a இல் x க்கு x + 2) அச்சு (c) அச்சு (நிமிடம் (c))

வெளியீடு:

ஜெனரேட்டர் வெளிப்பாடு
2

மேலே உள்ள வெளிப்பாடு a இன் மதிப்புகளுக்கு பொருந்தும்போது மேலே உள்ள நிரல் நிமிட மதிப்பை அச்சிடுகிறது.

பயன்பாடு வழக்குகள்:

இல் ஜெனரேட்டர்களைப் பயன்படுத்துவோம் க்கு:

  • ஃபைபோனச்சி தொடரை உருவாக்குங்கள்
  • எண்களை உருவாக்குதல்

ஃபைபோனச்சி தொடரை உருவாக்குதல்:

நாம் அனைவரும் அறிந்த ஃபைபோனச்சி தொடர் என்பது எண்களின் தொடர், இதில் ஒவ்வொரு எண்ணும் இரண்டு எண்களுக்கு முந்தைய தொகை ஆகும். முதல் இரண்டு எண்கள் 0 மற்றும் 1. ஃபைபோனச்சி தொடரை உருவாக்க ஒரு ஜெனரேட்டர் நிரல் இங்கே:

உதாரணமாக:

def fibo (): முதல், இரண்டாவது = 0,1, உண்மை: முதல் முதல், இரண்டாவது = இரண்டாவது, முதல் + இரண்டாவது x இல் ஃபைபோவில் (): x> 50 என்றால்: அச்சு அச்சிடு (x, end = '')

வெளியீடு:

0 1 1 2 3 5 8 13 21 34

மேலே உள்ள வெளியீடு 50 க்கும் குறைவான மதிப்புகளைக் கொண்ட ஃபைபோனச்சி தொடரைக் காட்டுகிறது. எண்களின் பட்டியலை எவ்வாறு உருவாக்குவது என்பதை இப்போது பார்ப்போம்.

எண்களை உருவாக்குதல்:

நீங்கள் குறிப்பிட்ட பட்டியல் எண்களை உருவாக்க விரும்பினால், ஜெனரேட்டர் செயல்பாடுகளைப் பயன்படுத்தி அதைச் செய்யலாம். பின்வரும் எடுத்துக்காட்டைப் பாருங்கள்:

உதாரணமாக:

a = வரம்பு (10) b = (a இல் x க்கு x) அச்சு (b) இல் y க்கு b: அச்சு (y)

வெளியீடு:

0
ஒன்று
2
3
4
5
6
7
8
9

உதாரணமாக:

a = வரம்பு (2,10,2) b = (a இல் x க்கு x) அச்சு (b) இல் y க்கு b: அச்சு (y)

வெளியீடு:


2
4
6
8

மேலே உள்ள நிரல் 2 முதல் 10 வரையிலான எண்களை கூட திருப்பி அளித்துள்ளது. இது பைத்தானில் உள்ள ஜெனரேட்டர்கள் குறித்த இந்த கட்டுரையின் முடிவிற்கு நம்மை அழைத்துச் செல்கிறது. நீங்கள் அனைத்து தலைப்புகளையும் புரிந்து கொண்டீர்கள் என்று நம்புகிறேன்.

முடிந்தவரை பயிற்சி செய்து உங்கள் அனுபவத்தை மாற்றியமைக்கவும்.

எங்களுக்கு ஒரு கேள்வி கிடைத்ததா? இந்த “பைத்தானில் உள்ள ஜெனரேட்டர்கள்” வலைப்பதிவின் கருத்துகள் பிரிவில் இதைக் குறிப்பிடவும், விரைவில் நாங்கள் உங்களிடம் வருவோம்.

பைத்தானில் அதன் பல்வேறு பயன்பாடுகளுடன் ஆழமான அறிவைப் பெற, நீங்கள் நேரலைக்கு பதிவு செய்யலாம் 24/7 ஆதரவு மற்றும் வாழ்நாள் அணுகலுடன்.