Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
📘 Lesson  ·  Lesson 49

Map, Filter, Reduce

map, filter, reduce क्या हैं

map, filter और reduce list process करने के तीन tools हैं, बिना पूरे loops लिखे। map हर item बदलता है, filter सिर्फ़ कुछ items रखता है, और reduce पूरी list को एक value में समेट देता है। ये functional programming से आते हैं और list काम को compact बनाते हैं।

💡 map = सब बदलो, filter = कुछ रखो, reduce = एक में जोड़ो।

map — हर item बदलना

nums = [1, 2, 3, 4]
doubled = map(lambda x: x * 2, nums)
print(list(doubled))
[2, 4, 6, 8]

map हर item पर function लगाता है और नया sequence लौटाता है। हम values देखने को इसे list() में लपेटते हैं, क्योंकि map lazy iterator लौटाता है।

filter — items चुनना

nums = [1, 2, 3, 4, 5, 6]
evens = filter(lambda x: x % 2 == 0, nums)
print(list(evens))
[2, 4, 6]

filter सिर्फ़ वे items रखता है जिनके लिए function True लौटाए। यहाँ यह even numbers रखता है। यह मूल से कम items लौटा सकता है।

reduce — एक में जोड़ना

from functools import reduce
nums = [1, 2, 3, 4]
total = reduce(lambda a, b: a + b, nums)
print(total)
10

reduce एक बार में दो items लेकर जोड़ता है, फिर result को अगले से जोड़ता है, वग़ैरह — पूरी list को एक value में समेटकर। ध्यान दीजिए इसे functools से import करना ज़रूरी है।

lambda इस्तेमाल

lambda एक छोटा बिना-नाम function है, इन tools में भेजने को बढ़िया।

square = lambda x: x * x
print(square(5))          # 25
# वही विचार inline इस्तेमाल:
print(list(map(lambda x: x * x, [1, 2, 3])))
25
[1, 4, 9]

lambda x: x * x एक-line function है। आप इसे नाम दे सकते हैं या सीधे map/filter/reduce में डाल सकते हैं।

map/filter बनाम comprehension

अक्सर list comprehension वही काम ज़्यादा पढ़ने योग्य तरीके से करता है।

# map:
list(map(lambda x: x * 2, nums))
# comprehension (साफ़):
[x * 2 for x in nums]

सरल transforms और filters के लिए, comprehension आमतौर पर Pythonic विकल्प है। map/filter तब इस्तेमाल कीजिए जब लगाने को पहले से named function हो।

आम गलतियाँ

  • list() भूलना। map और filter iterators लौटाते हैं — values देखने को लपेटिए।
  • reduce import न करना। यह functools से आता है, map और filter के विपरीत।
  • lambda का ज़्यादा इस्तेमाल। जटिल चीज़ों को named def function साफ़ है।
  • Iterator दोबारा इस्तेमाल करना। map/filter result एक बार consume होता है; दोबारा इस्तेमाल को list बनाइए।

सारांश

  • map हर item को नए sequence में बदलता है।
  • filter सिर्फ़ test पास करने वाले items रखता है।
  • reduce (functools से) सारे items को एक value में जोड़ता है।
  • lambda भेजने को जल्दी एक-line function देता है।
  • सरल मामलों में, list comprehension अक्सर ज़्यादा साफ़ है।

आगे, तुलना कीजिए list comprehension से, या data व्यवस्थित कीजिए list, tuple, set और dict से।

अक्सर पूछे जाने वाले प्रश्न (FAQ)

map, filter और reduce क्या करते हैं?
ये list को तीन तरीकों से process करते हैं: map हर item बदलता है, filter सिर्फ़ test पास करने वाले items रखता है, और reduce सारे items को एक value में जोड़ता है। साथ में ये ज़्यादातर list-processing ज़रूरतें cover करते हैं।
Lambda function क्या है?
Lambda एक छोटा, एक-line बिना-नाम वाला function है, जैसे lambda x: x * 2। इसे def से पूरा function बनाए बिना map, filter या reduce में सीधे भेजना सुविधाजनक है।
map, list नहीं, map object क्यों लौटाता है?
कुशलता के लिए, map और filter lazy iterators लौटाते हैं जो values सिर्फ़ ज़रूरत पड़ने पर बनाते हैं। सारी values एक साथ देखने को result को list() में लपेटिए।
reduce कहाँ से आता है?
map और filter के विपरीत, reduce built-in नहीं — आप इसे functools module से import करते हैं: from functools import reduce। फिर यह items को जोड़ी-जोड़ी एक result में जोड़ता है।
map/filter इस्तेमाल करूँ या list comprehension?
सरल transforms और filters के लिए, list comprehension अक्सर ज़्यादा साफ़ और Pythonic है। map और filter तब चमकते हैं जब आपके पास लगाने को पहले से named function हो। दोनों सही हैं — readability चुनिए।
← Back to Python Tutorial
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicDeep Copy vs Shallow Copy आपकी प्रगति: 49 / 66 (74%) · Lesson 50 / 66 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें