पायथन में ऑब्जेक्ट्स की इटरेशन के लिए map फ़ंक्शन
मान लीजिए कि हमारे पास संख्याओं को वर्ग करने के लिए square फ़ंक्शन है।
और एक सूची है, जिसके तत्वों पर इस फ़ंक्शन को लागू करने की आवश्यकता है:
pythondef square(num):
return num ** 2
lst = [2, 3, 6, 8, 15]
पायथन में इस कार्य को हल करने के लिए, एक विशेष फ़ंक्शन map का उपयोग किया जा सकता है।
यह एक फ़ंक्शन और एक सूची को पैरामीटर के रूप में लेता है, जिसके तत्वों पर इसे लागू करने की आवश्यकता होती है।
आइए उदाहरण को हल करने के लिए map का उपयोग करें:
pythonres = map(square, lst)
print(res)
प्रत्येक सूची, किसी भी जटिल ऑब्जेक्ट की तरह, पायथन की सिस्टम मेमोरी में बहुत जगह लेती है। इसलिए संसाधनों को बचाने के लिए, कोड निष्पादित होने के बाद एक नई सूची नहीं, बल्कि एक विशेष इटरेबल map-ऑब्जेक्ट वापस आएगा:
python<map object at 0x000001F16674BA00>
आइए इसे लूप से इटरेट करें:
pythonfor el in res:
print(el)
परिणामस्वरूप नई सूची के सभी तत्व प्रिंट होंगे:
python4
9
36
64
225
map-ऑब्जेक्ट से एक नई सूची बनाने के लिए, उस पर list फ़ंक्शन लागू करने की आवश्यकता होती है:
pythonlst = [2, 3, 6, 8, 15]
res = map(square, lst)
परिणामस्वरूप निम्नलिखित सूची प्रिंट होगी:
python[4, 9, 36, 64, 225]
साथ ही, map फ़ंक्शन के साथ काम करते समय, पहले पैरामीटर में लैम्ब्डा-फ़ंक्शन भी निर्दिष्ट किया जा सकता है।
आइए लैम्ब्डा-फ़ंक्शन का उपयोग करके पिछले उदाहरण को फिर से लिखें:
pythonres = map(lambda num: num ** 2, lst, lst)
print(list(res))
निम्नलिखित कोड को लैम्ब्डा-फ़ंक्शन के माध्यम से फिर से लिखें:
pythondef func(num):
return num + 1
lst = [1, 2, 3, 4, 5]
res = map(func, lst)
print(list(res))
निम्नलिखित कोड को लैम्ब्डा-फ़ंक्शन के माध्यम से फिर से लिखें:
pythondef func(txt):
return txt[::-1]
lst = ['123', '456', '789']
res = map(func, lst)
print(list(res))