map
समारोह यहां बहुत उपयोगी हो सकता है। map
हम प्रयोग करके किसी भी फ़ंक्शन को चलने के प्रत्येक तत्व पर लागू कर सकते हैं।
अजगर 3.x
>>> def my_mul(x,y):
... return x*y
...
>>> a = [1,2,3,4]
>>> b = [2,3,4,5]
>>>
>>> list(map(my_mul,a,b))
[2, 6, 12, 20]
>>>
बेशक:
map(f, iterable)
के बराबर है
[f(x) for x in iterable]
तो हम अपने समाधान के माध्यम से प्राप्त कर सकते हैं:
>>> [my_mul(x,y) for x, y in zip(a,b)]
[2, 6, 12, 20]
>>>
पायथन में 2.x का map()
अर्थ है: एक चलने वाले के प्रत्येक तत्व के लिए एक फ़ंक्शन लागू करें और एक नई सूची का निर्माण करें। पायथन 3.x में, map
सूचियों के बजाय पुनरावृत्तियों का निर्माण करें।
इसके बजाय my_mul
हम mul
ऑपरेटर का उपयोग कर सकते हैं
पायथन 2.7
>>>from operator import mul # import mul operator
>>>a = [1,2,3,4]
>>>b = [2,3,4,5]
>>>map(mul,a,b)
[2, 6, 12, 20]
>>>
पायथन 3.5+
>>> from operator import mul
>>> a = [1,2,3,4]
>>> b = [2,3,4,5]
>>> [*map(mul,a,b)]
[2, 6, 12, 20]
>>>
कृपया ध्यान दें कि चूंकि map()
एक *
पुनरावृत्तिकर्ता का निर्माण करता है, इसलिए हम सूची प्राप्त करने के लिए चलने योग्य अनपैकिंग ऑपरेटर का उपयोग करते हैं । अनपैकिंग एप्रोच थोड़ा तेज है तो list
कंस्ट्रक्टर:
>>> list(map(mul,a,b))
[2, 6, 12, 20]
>>>