अधिकांश प्रतिस्पर्धी प्रोग्रामिंग चुनौतियों के लिए पायथन कोडर के बीच पसंदीदा भाषाओं में से एक है। अधिकांश समस्याओं को आसानी से एक उचित समय सीमा में पायथन का उपयोग करके गणना की जाती है।
कुछ जटिल समस्याओं के लिए, पर्याप्त तेज़ अजगर कोड लिखना अक्सर एक चुनौती होती है। नीचे कुछ पाइथोनिक कोड संरचनाएं दी गई हैं जो प्रतिस्पर्धी कोडिंग में आपके कोड के प्रदर्शन को बेहतर बनाने में मदद करती हैं -
<मजबूत>1. स्ट्रिंग्स संयोजन :नीचे दिए गए निर्माण का उपयोग न करें।
str1 = "" some_list = ["Welcome ", "To ", "Tutorialspoint "] for x in some_list: str1 += x print(str1)
उपरोक्त विधि बहुत अधिक समय देती है। इसके बजाय, इस (जुड़ने की विधि) का उपयोग करने का प्रयास करें -
str1 = "" some_list = ["Welcome ", "To ", "Tutorialspoint "] print(str1.join(some_list))
<मजबूत>2. मानचित्र कार्य
आम तौर पर, आपके पास प्रतिस्पर्धी कोडिंग में एक इनपुट होता है, जैसे -
1234567
उन्हें केवल संख्याओं की सूची के रूप में प्राप्त करने के लिए
list(map (int, input().split()))
इनपुट के प्रकार के बावजूद हमेशा इनपुट () फ़ंक्शन का उपयोग करें और फिर इसे मैप फ़ंक्शन का उपयोग करके परिवर्तित करें।
>>> list(map(int, input("enter numbers:").split())) enter numbers:1 2 3 4 5 6 7 [1, 2, 3, 4, 5, 6, 7] >>>
मैप फंक्शन पाइथन के खूबसूरत इन-बिल्ट फंक्शन में से एक है, जो कई बार काम आता है। जानने लायक।
<मजबूत>3. संग्रह मॉड्यूल
यदि हम किसी सूची से डुप्लीकेट हटाना चाहते हैं। जबकि जावा जैसी अन्य भाषाओं में आपको हैश मैप या किसी अन्य अजीब तरीके का उपयोग करना पड़ सकता है, हालांकि, पाइथो में यह बस है
>>> print(list(set([1,2,3,4,3,4,5,6]))) [1, 2, 3, 4, 5, 6]
साथ ही, दो या दो से अधिक सूचियों को मर्ज करते समय, सूचियों में विस्तार () और परिशिष्ट () का उपयोग करने में सावधानी बरतें।
>>> a = [1, 2, 3,4] # list 1 >>> b = [5, 6, 7] # list 2 >>> a.extend(b)#gives one list >>> a [1, 2, 3, 4, 5, 6, 7] >>> a.append(b) # gives list of list >>> a [1, 2, 3, 4, [5, 6, 7]]
<मजबूत>4. भाषा निर्माण
फ़ंक्शन के भीतर अपना कोड लिखना बेहतर है, हालांकि प्रक्रियात्मक कोड पायथन में समर्थित है।
def main(): for i in range(2**3): print(x) main()
की तुलना में बहुत बेहतर है
for x in range(2**3): print(x)
अंतर्निहित Cpython कार्यान्वयन के कारण ग्लोबल्स की तुलना में स्थानीय चरों को संग्रहीत करना तेज़ है।
<मजबूत>5. मानक पुस्तकालय का प्रयोग करें:
जितना संभव हो सके अंतर्निहित कार्यों और मानक पुस्तकालय पैकेज का उपयोग करना बेहतर है। वहाँ, के बजाय -
newlist = [] for x in somelist: newlist.append(myfunc(x))
इसका उपयोग करें -
newlist = map(myfunc, somelist)
इसी तरह, itertools (मानक पुस्तकालय) का उपयोग करने का प्रयास करें, क्योंकि वे एक सामान्य कार्य के लिए बहुत तेज़ हैं। उदाहरण के लिए, आपके पास कोड की कुछ पंक्तियों के साथ लूप के लिए क्रमपरिवर्तन जैसा कुछ हो सकता है।
>>> import itertools >>> iter = itertools.permutations(["a","b","c"]) >>> list(iter) [('a', 'b', 'c'), ('a', 'c', 'b'), ('b', 'a', 'c'), ('b', 'c', 'a'), ('c', 'a', 'b'), ('c', 'b', 'a')]
<मजबूत>6. जेनरेटर
आपके द्वारा लिखे गए कोड की मेमोरी फ़ुटप्रिंट और औसत समय जटिलता दोनों को कम करने के लिए जेनरेटर उत्कृष्ट निर्माण हैं।
def fib(): a, b = 0, 1 while 1: yield a a, b = b, a+b