एक जेनरेटर बनाएँ
पिछले अभ्यासों में, आपने मुख्यतः generator expressions लिखे थे, जो comprehension सिंटैक्स का उपयोग करते हैं. Generator expressions के लिए comprehension सिंटैक्स उपयोग करने से आपका काम काफी आसान हो गया!
अब, वीडियो से याद कीजिए कि generator expressions के साथ-साथ generator functions भी होते हैं. Generator functions वे फंक्शन होते हैं जो, generator expressions की तरह, एक सिंगल वैल्यू लौटाने के बजाय वैल्यूज़ की एक series yield करते हैं. एक generator function को वैसे ही परिभाषित किया जाता है जैसे आप एक regular function करते हैं, लेकिन जब भी वह कोई वैल्यू जनरेट करता है, तो return की जगह yield कीवर्ड का उपयोग करता है.
इस अभ्यास में, आप एक generator function बनाएँगे, जिसका मैकेनिज्म पिछले अभ्यास में परिभाषित किए गए generator expression जैसा होगा:
lengths = (len(person) for person in lannister)
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python टूलबॉक्स
अभ्यास निर्देश
- फंक्शन
get_lengths()के लिए फंक्शन हेडर पूरा करें, जिसमें एक ही पैरामीटरinput_listहो. - फंक्शन की परिभाषा में
forलूप के अंदर,input_listमें मौजूद strings की length कोyieldकरें. - उन वैल्यूज़ को प्रिंट करने वाले
forलूप के iterable हिस्से को पूरा करें जिन्हेंget_lengths()generator function जनरेट करता है. लिस्टlannisterपास करते हुएget_lengths()की कॉल सप्लाई करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Create a list of strings
lannister = ['cersei', 'jaime', 'tywin', 'tyrion', 'joffrey']
# Define generator function get_lengths
def ____:
"""Generator function that yields the
length of the strings in input_list."""
# Yield the length of a string
for person in input_list:
____
# Print the values generated by get_lengths()
for value in ____:
print(value)