लूप का उपयोग करते हुए, मैं इस मामले में 1 से 5 तक लूप इंडेक्स का उपयोग कैसे करूं?
enumerate
तत्व के साथ अनुक्रमणिका प्राप्त करने के लिए उपयोग करें जैसे कि आप इसे पुन: लिखते हैं:
for index, item in enumerate(items):
print(index, item)
और ध्यान दें कि पायथन के सूचकांक शून्य से शुरू होते हैं, इसलिए आपको उपरोक्त के साथ 0 से 4 मिलेगा। यदि आप गिनती, 1 से 5 चाहते हैं, तो यह करें:
for count, item in enumerate(items, start=1):
print(count, item)
Unidiomatic नियंत्रण प्रवाह
आप जो पूछ रहे हैं, वह निम्नलिखित के बराबर पायथोनिक है, जो कि एल्गोरिथ्म है जो निचले स्तर की भाषाओं के अधिकांश प्रोग्रामर उपयोग करेंगे:
index = 0 # Python's indexing starts at zero
for item in items: # Python's for loops are a "for each" loop
print(index, item)
index += 1
या ऐसी भाषाओं में जिनके लिए प्रत्येक लूप नहीं है:
index = 0
while index < len(items):
print(index, items[index])
index += 1
या कभी-कभी अधिक (लेकिन unidiomatically) पायथन में पाया जाता है:
for index in range(len(items)):
print(index, items[index])
Enumerate फ़ंक्शन का उपयोग करें
पायथन का enumerate
कार्य अनुक्रमों के लिए लेखांकन को छिपाकर दृश्य अव्यवस्था को कम करता है, और पुनरावृत्त को एक और पुनरावृत्त (एक enumerate
वस्तु) में संलग्न करता है जो सूचकांक के दो-आइटम टपल और उस आइटम का उत्पादन करता है जो मूल लेयरेबल प्रदान करेगा। यह इस तरह दिखता है:
for index, item in enumerate(items, start=0): # default is zero
print(index, item)
यह कोड नमूना कोड के बीच के अंतर का बहुत अच्छी तरह से विहित उदाहरण है जो कि पायथन के मुहावरेदार और कोड नहीं है। मुहावरेदार कोड परिष्कृत (लेकिन जटिल नहीं है) पायथन, इस तरह से लिखा गया है कि इसका उपयोग करने का इरादा था। भाषा के डिजाइनरों द्वारा मुहावरेदार कोड की अपेक्षा की जाती है, जिसका अर्थ है कि आमतौर पर यह कोड न केवल अधिक पठनीय है, बल्कि अधिक कुशल भी है।
एक गिनती हो रही है
भले ही आपको जाते समय अनुक्रमित की आवश्यकता न हो, लेकिन आपको पुनरावृत्तियों (कभी-कभी वांछनीय) की एक गिनती की आवश्यकता होती है जिसे आप शुरू कर सकते हैं 1
और अंतिम संख्या आपकी गिनती होगी।
for count, item in enumerate(items, start=1): # default is zero
print(item)
print('there were {0} items printed'.format(count))
जब आप 1 से 5 तक चाहते थे, तो गिनती अधिक प्रतीत होती है, जैसा कि आप इंडेक्स के विपरीत पूछना चाहते हैं।
इसे तोड़कर - एक कदम से कदम स्पष्टीकरण
इन उदाहरणों को तोड़ने के लिए, कहें कि हमारे पास उन वस्तुओं की एक सूची है जिन्हें हम एक सूचकांक के साथ जोड़ना चाहते हैं:
items = ['a', 'b', 'c', 'd', 'e']
अब हम एन्यूमरेट करने के लिए इस पुनरावृत्ति को पास करते हैं, एन्यूमरेट ऑब्जेक्ट बनाते हैं:
enumerate_object = enumerate(items) # the enumerate object
हम इस पुनरावृत्ति से पहले आइटम को खींच सकते हैं जो हमें next
फ़ंक्शन के साथ लूप में मिलेगा :
iteration = next(enumerate_object) # first iteration from enumerate
print(iteration)
और हम देखते हैं कि हमें 0
सबसे पहला इंडेक्स मिला है, और 'a'
पहला आइटम:
(0, 'a')
हम इस टू-टपल से तत्वों को निकालने के लिए " अनुक्रम अनपैकिंग " के रूप में संदर्भित का उपयोग कर सकते हैं :
index, item = iteration
# 0, 'a' = (0, 'a') # essentially this.
और जब हम निरीक्षण index
, हम इसे पहले यह सूचकांक 0 को संदर्भित करता है, और लगता है item
, पहला आइटम को संदर्भित करता है 'a'
।
>>> print(index)
0
>>> print(item)
a
निष्कर्ष
- पायथन इंडेक्स शून्य पर शुरू होता है
- जब आप उस पर पुनरावृति करते हैं, तो इन अनुक्रमणिकाओं को पुनरावृत्ति से प्राप्त करने के लिए, एन्यूमरेट फ़ंक्शन का उपयोग करें
- मुहावरेदार तरीके से (टपल अनपैकिंग के साथ) एन्यूमरेट का उपयोग करना एक ऐसा कोड बनाता है जो अधिक पठनीय और रखरखाव योग्य है:
तो ऐसा करें:
for index, item in enumerate(items, start=0): # Python indexes start at zero
print(index, item)