मैं पाइथन दस्तावेज़ के माध्यम से वास्तव में गहराई से प्राप्त करने के लिए पाइथन दस्तावेज़ के माध्यम से पढ़ रहा हूं और फ़िल्टर और मानचित्र कार्यों में आया हूं। मैंने पहले फ़िल्टर का उपयोग किया है, लेकिन कभी मैप नहीं किया है, हालांकि मैंने एसओ पर विभिन्न पायथन प्रश्नों में दोनों को देखा है।पायथन: फिल्टर (फ़ंक्शन, अनुक्रम) और मानचित्र (फ़ंक्शन, अनुक्रम) के बीच अंतर
पायथन ट्यूटोरियल में उनके बारे में पढ़ने के बाद, मैं दोनों के बीच के अंतर पर उलझन में हूं। उदाहरण के लिए, 5.1.3. Functional Programming Tools से लिए:
>>> def f(x): return x % 2 != 0 and x % 3 != 0
...
>>> filter(f, range(2, 25))
[5, 7, 11, 13, 17, 19, 23]
और
>>> def cube(x): return x*x*x
...
>>> map(cube, range(1, 11))
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
ये लगभग ठीक मेरे लिए समारोह में एक ही देखा, तो मैं अजगर सहभागी को चलाने के लिए टर्मिनल में चला गया और अपने खुद के मामले बाहर का परीक्षण किया। मैंने उपरोक्त पहले और दूसरे उदाहरणों के लिए map
का उपयोग किया, और पहले (return x % 2 != 0 and x % 3 != 0
) के लिए यह संख्याओं की बजाय बूलियन की एक सूची लौटा दी।
map
कभी-कभी बूलियन और अन्य बार वास्तविक वापसी मूल्य क्यों लौटाता है?
क्या कोई मुझे map
और filter
के बीच बिल्कुल अंतर समझा सकता है?
कि अब समझ में आता है, मैं देख कैसे फिल्टर अवधि पता चलता है क्या समारोह मानचित्र बनाम करता है:
उदाहरण है कि आप दे दी है, उन्हें तुलना करते हैं अनुसरण करता है। – samrap
असल में नाम 'नक्शा()' का अर्थ भी समझ में आता है, कुछ फ़ील्ड में जब मानचित्र क्रिया के रूप में उपयोग किया जाता है तो इसका अर्थ 1 से 1 संबंधित संबंध ढूंढना है। जैसे गणित में: 'नक्शा x से y' या आनुवंशिकी में: 'एक जीन के लिए मानचित्र मधुमेह'। 'पायथन' के बारे में एक बात अच्छी तरह से है: नाम अक्सर समझ में आता है। –
यह एक अच्छा बिंदु है। यह मजाकिया है कि प्रोग्रामिंग के समान कुछ पहलू रोजमर्रा के उदाहरण हैं।जैसे कि मैं बीजगणित 2 में हूं और हम फ़ंक्शन f (x) के बारे में सीख रहे हैं और आधा कक्षा स्टंप हो गई है लेकिन विचार प्रोग्रामिंग में कार्यों के समान 100% है। – samrap