पायथन की 5 उन्नत विशेषताएं और उनका उपयोग कैसे करें

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें

पायथन की 5 उन्नत विशेषताएं और उनका उपयोग कैसे करें

किसी भी प्रोग्रामिंग भाषा की उन्नत विशेषताएं आमतौर पर व्यापक अनुभव के माध्यम से खोजी जाती हैं। आप एक जटिल परियोजना को कोड कर रहे हैं और खुद को स्टैक ओवरफ्लो पर कुछ खोज रहे हैं। फिर आप अपनी समस्या का एक सुंदर सुरुचिपूर्ण समाधान पाते हैं जो एक पायथन सुविधा का उपयोग करता है जिसे आप कभी नहीं जानते थे!

यह पूरी तरह से सीखने का सबसे मजेदार तरीका है: अन्वेषण और दुर्घटना द्वारा खोज!

मौत का संग्राम (2021 पूरी फिल्म मुफ्त डाउनलोड)

यहाँ पायथन प्रोग्रामिंग भाषा की सबसे उपयोगी उन्नत सुविधाओं में से 5 हैं - और इससे भी महत्वपूर्ण बात यह है कि उनका उपयोग कैसे करें!



(1) लैम्ब्डा फ़ंक्शन

प्रति लैम्ब्डा फंक्शन एक छोटा, अनाम कार्य है - इस अर्थ में गुमनाम कि इसका वास्तव में कोई नाम नहीं है।

पायथन फ़ंक्शन को आमतौर पर |_+_| . की शैली का उपयोग करके परिभाषित किया जाता है , लेकिन लैम्ब्डा फ़ंक्शंस के साथ हम इसे कोई नाम नहीं देते हैं। हम ऐसा इसलिए करते हैं क्योंकि लैम्ब्डा फ़ंक्शन का उद्देश्य किसी प्रकार का प्रदर्शन करना है सरल किसी फ़ंक्शन को पूरी तरह से परिभाषित करने की आवश्यकता के बिना अभिव्यक्ति या संचालन।

एक लैम्ब्डा फ़ंक्शन किसी भी संख्या में तर्क ले सकता है, लेकिन हमेशा केवल एक अभिव्यक्ति होनी चाहिए:

def a_function_name()

देखिए वह कितना आसान था! हमने फ़ंक्शन पर पूर्ण परिभाषित करने की आवश्यकता के बिना कुछ बुनियादी गणित का प्रदर्शन किया। यह पायथन की कई विशेषताओं में से एक है जो इसे उपयोग करने के लिए एक साफ और सरल प्रोग्रामिंग भाषा बनाती है।

(२) मानचित्र

नक्शा() एक अंतर्निहित पायथन फ़ंक्शन है जिसका उपयोग किसी सूची या शब्दकोश जैसे तत्वों के अनुक्रम में फ़ंक्शन को लागू करने के लिए किया जाता है। यह एक बहुत ही साफ और सबसे महत्वपूर्ण बात है पठनीय इस तरह के ऑपरेशन को करने का तरीका।

x = lambda a, b : a * b print(x(5, 6)) # prints '30' x = lambda a : a*3 + 3 print(x(3)) # prints '12'

ऊपर दिए गए उदाहरण को देखें! हम अपने फ़ंक्शन को एक सूची या एकाधिक सूचियों पर लागू कर सकते हैं। आम तौर पर, आप किसी भी पायथन फ़ंक्शन के साथ मानचित्र का उपयोग कर सकते हैं, जब तक कि यह आपके द्वारा संचालित अनुक्रम तत्वों के साथ संगत है।

(३) छानना

NS फ़िल्टर अंतर्निहित फ़ंक्शन काफी समान है नक्शा फ़ंक्शन जिसमें यह एक अनुक्रम (सूची, टपल, शब्दकोश) पर एक फ़ंक्शन लागू करता है। मुख्य अंतर यह है कि फ़िल्टर () केवल उन तत्वों को वापस करेगा जो लागू फ़ंक्शन के रूप में लौटाए गए हैं सत्य .

उदाहरण के लिए नीचे दिया गया उदाहरण देखें:

def square_it_func(a): return a * a x = map(square_it_func, [1, 4, 7]) print(x) # prints '[1, 16, 47]' def multiplier_func(a, b): return a * b x = map(multiplier_func, [1, 4, 7], [2, 5, 8]) print(x) # prints '[2, 20, 56]'

हमने न केवल प्रत्येक सूची तत्व के लिए सही या गलत का मूल्यांकन किया, *फ़िल्टर ()* फ़ंक्शन ने यह भी सुनिश्चित किया कि केवल उन तत्वों को वापस किया जाए जो सत्य के रूप में मेल खाते हैं। एक अभिव्यक्ति की जाँच करने और एक वापसी सूची बनाने के दो चरणों को संभालने के लिए बहुत सुविधाजनक है।

(4) इटरटूल

अजगर इटरटूल्स मॉड्यूल पुनरावृत्तियों को संभालने के लिए उपकरणों का एक संग्रह है। एक पुनरावर्तक एक डेटा प्रकार है जिसका उपयोग लूप के लिए सूचियों, टुपल्स और शब्दकोशों सहित किया जा सकता है।

में कार्यों का उपयोग करना इटरटूल्स मॉड्यूल आपको कई पुनरावृत्त संचालन करने की अनुमति देगा जो सामान्य रूप से बहु-पंक्ति कार्यों और जटिल सूची समझ की आवश्यकता होगी। के जादू के एक भयानक चित्रण के लिए नीचे दिए गए उदाहरण देखें इटरटूल!

# Our numbers numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] # Function that filters out all numbers which are odd def filter_odd_numbers(num): if num % 2 == 0: return True else: return False filtered_numbers = filter(filter_odd_numbers, numbers) print(filtered_numbers) # filtered_numbers = [2, 4, 6, 8, 10, 12, 14]

(५) जेनरेटर

जनक फ़ंक्शंस आपको एक फ़ंक्शन घोषित करने की अनुमति देता है जो एक पुनरावर्तक की तरह व्यवहार करता है, यानी इसका उपयोग लूप में किया जा सकता है। यह आपके कोड को बहुत सरल करता है और लूप के लिए सरल की तुलना में बहुत अधिक मेमोरी कुशल है।

एक उदाहरण पर विचार करें जहां हम 1 से 1000 तक की सभी संख्याओं को जोड़ना चाहते हैं। नीचे दिए गए कोड का पहला भाग दिखाता है कि आप लूप के लिए यह कैसे करेंगे।

अब यह सब ठीक है और अगर सूची छोटी है, तो 1000 की लंबाई कहें। समस्या तब उत्पन्न होती है जब आप इसे एक के साथ करना चाहते हैं विशाल सूची, 1 बिलियन फ्लोट नंबर कहें। लूप के लिए, उस विशाल मेमोरी च्यूइंग लिस्ट को *मेमोरी में बनाया जाता है - *हर किसी के पास ऐसी चीज को स्टोर करने के लिए असीमित रैम नहीं होती है! |_+_| पायथन में फ़ंक्शन वही काम करता है, यह स्मृति में सूची बनाता है

कोड की धारा (2) एक पायथन जनरेटर का उपयोग करके संख्याओं की सूची के योग को दर्शाती है। एक जनरेटर तत्व बनाएगा और उन्हें केवल मेमोरी में संग्रहीत करेगा जैसा कि उन्हें चाहिए यानी एक समय में एक। इसका मतलब है, अगर आपको 1 बिलियन फ्लोटिंग पॉइंट नंबर बनाने हैं, तो आप उन्हें एक बार में केवल एक ही मेमोरी में स्टोर करेंगे! |_+_| पायथन में फ़ंक्शन सूची बनाने के लिए जनरेटर का उपयोग करता है।

ओपनसीवी रास्पबेरी पाई स्थापित करें 4

कहानी का नैतिक: यदि आपके पास एक बड़ी रेंज है जिसके लिए आप एक सूची बनाना चाहते हैं, तो एक जनरेटर या |_+_| का उपयोग करें। समारोह। यह विशेष रूप से सच है यदि आपके पास मोबाइल या अत्याधुनिक कंप्यूटिंग जैसी वास्तव में स्मृति संवेदनशील प्रणाली है।

कहा जा रहा है, यदि आप सूची में कई बार पुनरावृति करना चाहते हैं और यह स्मृति में फिट होने के लिए काफी छोटा है, तो लूप और from itertools import * # Easy joining of two lists into a list of tuples for i in izip([1, 2, 3], ['a', 'b', 'c']): print i # ('a', 1) # ('b', 2) # ('c', 3) # The count() function returns an interator that # produces consecutive integers, forever. This # one is great for adding indices next to your list # elements for readability and convenience for i in izip(count(1), ['Bob', 'Emily', 'Joe']): print i # (1, 'Bob') # (2, 'Emily') # (3, 'Joe') # The dropwhile() function returns an iterator that returns # all the elements of the input which come after a certain # condition becomes false for the first time. def check_for_drop(x): print 'Checking: ', x return (x > 5) for i in dropwhile(should_drop, [2, 4, 6, 8, 10, 12]): print 'Result: ', i # Checking: 2 # Checking: 4 # Result: 6 # Result: 8 # Result: 10 # Result: 12 # The groupby() function is great for retrieving bunches # of iterator elements which are the same or have similar # properties a = sorted([1, 2, 1, 3, 2, 1, 2, 3, 4, 5]) for key, value in groupby(a): print(key, value), end=' ') # (1, [1, 1, 1]) # (2, [2, 2, 2]) # (3, [3, 3]) # (4, [4]) # (5, [5]) फ़ंक्शन के लिए उपयोग करना बेहतर होगा। ऐसा इसलिए है क्योंकि जनरेटर और |_+_| हर बार जब आप उन्हें एक्सेस करते हैं तो सूची मूल्यों को ताज़ा रूप से उत्पन्न करेंगे, जबकि |_+_| एक स्थिर सूची है और त्वरित पहुंच के लिए स्मृति में पूर्णांक पहले से मौजूद हैं।

range()

#पायथन #मशीन-लर्निंग

यह सभी देखें: