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

पायथन पुनरावर्तनीय और पुनरावृत्त के बीच अंतर

एक पुनरावृत्त को एक वस्तु के रूप में शिथिल रूप से परिभाषित किया जा सकता है जो इन-बिल्ट विधि iter () में पारित होने पर एक पुनरावर्तक उत्पन्न करेगा। किसी वस्तु के चलने योग्य होने के लिए कुछ शर्तें हैं, वर्ग की वस्तु को दो उदाहरण मेहतोद को परिभाषित करने की आवश्यकता है:__len__ और __getitem__। एक वस्तु जो इन शर्तों को पूरा करती है जब विधि iter() को पास किया जाता है तो एक पुनरावर्तक उत्पन्न होता है।

आइए नीचे दिए गए उदाहरण को समझें, चलने योग्य को समझने के लिए -

स्ट्रिंग में चार के लिए
string = "Tutorialspoint"
for char in string:
print (char)

आउटपुट

T
u
t
o
r
i
a
l
s
p
o
i
n
t

कोड के ऊपर __getitem__(index) विधि का उपयोग करें जो तत्व को इंडेक्स द्वारा निर्दिष्ट स्थान पर लौटाएगा।

तो, हमारा उपरोक्त कोड -

  • इंडेक्स 0 से शुरू करें
  • कॉल स्ट्रिंग.__getitem__(index)
  • इंडेक्स त्रुटि उठाई गई? रुकें
  • लूप का रन बॉडी
  • इन्क्रीमेंट इंडेक्स, चरण 2 पर वापस लौटें।

इटरेटर

इटरेटर्स को एक ऑब्जेक्ट के रूप में परिभाषित किया जाता है जो एक इटरनल स्टेट वेरिएबल के माध्यम से इंटरेक्शन की गणना करता है। चर, इस मामले में, शून्य पर सेट नहीं है जब पुनरावृत्ति अंतिम आइटम को पार करती है, इसके बजाय, StopIteration() पुनरावृत्ति के अंत को इंगित करने के लिए उठाया जाता है। इसका यह भी अर्थ है कि पुनरावृत्त वस्तु को केवल एक बार पुनरावृत्त किया जाएगा, जैसे नीचे दिए गए उदाहरण में -

my_list = ['itemOne', 'TutorialsPoints']
iterators_of_some_list = iter(my_list)
for i in iterators_of_some_list:
   print(i)
for j in iterators_of_some_list: # doesn't work
   print(j)
#However
for k in my_list:
   print(k)
for l in my_list: # it worked
   print(l)

आउटपुट

itemOne
TutorialsPoints
itemOne
TutorialsPoints
itemOne
TutorialsPoints

उपरोक्त कोड सही है क्योंकि पुनरावर्तक पर iter() विधि स्वयं लौटाती है (वर्तमान स्थिति को याद रखना है)। तो ऊपर हमारे पास इसे समाप्त करने के लिए "के लिए" के समान एक लूप प्रकार का कार्यान्वयन है।


  1. Python के re.search और re.match में क्या अंतर है?

    re.match() और re.search() दोनों ही Python मॉड्यूल re. के तरीके हैं। यदि स्ट्रिंग की शुरुआत में होता है तो re.match() विधि मिलान ढूंढती है। उदाहरण के लिए, टीपी ट्यूटोरियल प्वाइंट टीपी स्ट्रिंग पर मैच() को कॉल करना और पैटर्न टीपी की तलाश करना मेल खाएगा। उदाहरण import re result = re.match(r'TP

  1. पायथन में कच्चे_इनपुट () और इनपुट () कार्यों के बीच क्या अंतर है?

    फ़ंक्शन raw_input() उपयोगकर्ता को एक संकेत प्रस्तुत करता है (raw_input([arg]) का वैकल्पिक तर्क), उपयोगकर्ता से इनपुट प्राप्त करता है और उपयोगकर्ता द्वारा डेटा इनपुट को एक में लौटाता है डोरी। उदाहरण के लिए, name = raw_input("What isyour name? ") print "Hello, %s." %name यह इनपुट

  1. पायथन में स्ट्रिंग और बाइट स्ट्रिंग में क्या अंतर है?

    एक स्ट्रिंग वर्णों का एक क्रम है; ये एक अमूर्त अवधारणा हैं, और इन्हें सीधे डिस्क पर संग्रहीत नहीं किया जा सकता है। एक बाइट स्ट्रिंग बाइट्स का एक क्रम है - चीजें जो डिस्क पर संग्रहीत की जा सकती हैं। उनके बीच मानचित्रण एक एन्कोडिंग है - इनमें से बहुत सारे हैं (और असीम रूप से कई संभव हैं) - और आपको यह