2013-03-28 9 views
28

मैं स्ट्रिंग में वर्तमान वर्ण को prnt करने के लिए लूप के लिए एक साधारण पायथन लिख रहा हूं। हालांकि, मुझे चरित्र की अनुक्रमणिका नहीं मिल सका। यहां मेरे पास है, क्या किसी को लूप में चरित्र की वर्तमान अनुक्रमणिका प्राप्त करने का एक अच्छा तरीका पता है?पाइथन फॉर लूप इंडेक्स

loopme = 'THIS IS A VERY LONG STRING WITH MANY MANY WORDS!' 

for w in loopme: 
    print "CURRENT WORD IS " + w + " AT CHARACTER " 
+1

कुछ आवश्यकता होगी के लिए? 'डब्ल्यू' वर्तमान चरित्र है, शब्द नहीं। –

उत्तर

62

अनुक्रम आप के तत्वों के साथ सूचकांक उत्पन्न करने के लिए enumerate() function का प्रयोग अधिक पाशन कर रहे हैं:

for index, w in enumerate(loopme): 
    print "CURRENT WORD IS", w, "AT CHARACTER", index 
+0

तो enumerate() फ़ंक्शन के साथ, आपको दो चर परिभाषित करने की आवश्यकता है? सूचकांक के लिए एक और पात्रों के लिए एक? – user1817081

+0

@ user1817081: आपके पास * नहीं है; अब आप उस चीज़ पर लूप कर रहे हैं जो दो-मूल्य वाले ट्यूपल्स उत्पन्न करता है। टुपल अनपॅकिंग का उपयोग करना उन्हें 'प्राप्त' करना आसान बनाता है। –

+2

@ user1817081: आप 'elem in enumerate (loopme)' के लिए भी कर सकते हैं, फिर सूचकांक मान के लिए 'elem [[0] 'और चरित्र के लिए' elem [1]' का उपयोग करें, लेकिन यह अधिक बोझिल है। –

4

आप अक्षरों या शब्दों के ऊपर पुनरावृति करना चाहते हैं?

शब्द के लिए, आप शब्द पहले विभाजित करने के लिए, इस तरह के रूप

for index, word in enumerate(loopme.split(" ")): 
    print "CURRENT WORD IS", word, "AT INDEX", index 

इस शब्द के सूचकांक प्रिंट होगा।

पूर्ण चरित्र स्थिति में आप की तरह

chars = 0 
for index, word in enumerate(loopme.split(" ")): 
    print "CURRENT WORD IS", word, "AT INDEX", index, "AND AT CHARACTER", chars 
    chars += len(word) + 1 
एक तरफ नंबरिंग मुद्दा है, तो आप यकीन है कि यह तुम क्या चाहते है कर रहे हैं से
संबंधित मुद्दे