बिल्ट-इन प्रैक्टिस: enumerate()
इस अभ्यास में, आप Python के बिल्ट-इन फंक्शन enumerate() का उपयोग करना प्रैक्टिस करेंगे। यह फंक्शन एक indexed list पाने में काम आता है। उदाहरण के लिए, मान लीजिए आपके पास उन लोगों की सूची है जो आपकी पार्टी में पहुँचे। सूची आगमन क्रम में है (Jerry सबसे पहले पहुँचा, उसके बाद Kramer, आदि):
names = ['Jerry', 'Kramer', 'Elaine', 'George', 'Newman']
यदि आप किसी व्यक्ति के आगमन क्रम का इंडेक्स जोड़ना चाहें, तो आप नीचे दिया गया for लूप इस्तेमाल कर सकते हैं:
indexed_names = []
for i in range(len(names)):
index_name = (i, names[i])
indexed_names.append(index_name)
[(0,'Jerry'),(1,'Kramer'),(2,'Elaine'),(3,'George'),(4,'Newman')]
लेकिन यह सबसे कुशल समाधान नहीं है। आइए देखें कि इसे और बेहतर बनाने के लिए enumerate() का उपयोग कैसे करें.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Efficient Python Code लिखना
अभ्यास निर्देश
for i in range(len(names))के बजाय, for लूप को अपडेट करें ताकि आपiको इंडेक्स वैरिएबल औरnameको इटरेटर वैरिएबल के रूप में इस्तेमाल करें, औरenumerate()लगाएँ.- पिछले for लूप को
enumerate()और list comprehension का उपयोग करके फिर से लिखें ताकि एक नई सूचीindexed_names_compबने. - एक और सूची (
indexed_names_unpack) बनाएँ, जिसमें आपnamesपरenumerate()से बने enumerate object को स्टार कैरेक्टर (*) से अनपैक करें। इस बार,enumerate()का इंडेक्स शून्य के बजाय एक से शुरू करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Rewrite the for loop to use enumerate
indexed_names = []
for ____,_____ in ____(names):
index_name = (i,name)
indexed_names.append(index_name)
print(indexed_names)
# Rewrite the above for loop using list comprehension
indexed_names_comp = [(____,____) for i,name in ____(names)]
print(indexed_names_comp)
# Unpack an enumerate object with a starting index of one
indexed_names_unpack = [____(names, ____)]
print(indexed_names_unpack)