Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

प्रतिस्पर्धी कोडिंग के लिए पायथन ट्रिक्स

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

कुछ जटिल समस्याओं के लिए, पर्याप्त तेज़ अजगर कोड लिखना अक्सर एक चुनौती होती है। नीचे कुछ पाइथोनिक कोड संरचनाएं दी गई हैं जो प्रतिस्पर्धी कोडिंग में आपके कोड के प्रदर्शन को बेहतर बनाने में मदद करती हैं -

<मजबूत>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

  1. चयन क्रम के लिए पायथन कार्यक्रम

    इस लेख में, हम Python 3.x में सिलेक्शन सॉर्ट और उसके कार्यान्वयन के बारे में जानेंगे। या पहले। चयन क्रम . में एल्गोरिथम, एक सरणी को पुनरावर्ती रूप से अनसोल्ड भाग से न्यूनतम तत्व ढूंढकर और शुरुआत में सम्मिलित करके सॉर्ट किया जाता है। किसी दिए गए सरणी पर चयन क्रम के निष्पादन के दौरान दो उप-सरणी बनते

  1. विंडोज़ पर पायथन प्रोग्रामिंग के लिए आईडीई

    इस लेख में, हम विंडोज़ के लिए पायथन पर उपलब्ध विभिन्न आईडीई के बारे में जानेंगे। पिचर्म इंटरएक्टिव पायथन कंसोल वेब ढांचे के लिए समर्थन तेज़ अपवर्तन समय कम विकास जुपिटर नोटबुक लगभग हर पायथन मॉड्यूल के साथ संगतता कम जगह और हार्डवेयर आवश्यकताएं इनबिल्ट टर्मिनल और कर्नेल सुविधाएं विज़ेट की एक विस्त

  1. प्रतिस्पर्धी कोडिंग के लिए पायथन सबसे उपयुक्त क्यों है

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