2011-10-05 19 views
7

मान लीजिए मैं शब्द "इंटरनेट" में पत्र 'ई' में से प्रत्येक के सूचकांक खोजने के लिए:ढूँढना सूचकांक

letter = 'e' 
word = 'internet' 
idx = word.index(letter) 

लेकिन इस कोड केवल पहले सूचकांक देता है। मैं उन्हें बाकी कैसे ढूंढ सकता हूं?

+2

एक 'स्ट्रिंग', नहीं है एक 'सूची'। – Johnsyweb

+0

जिज्ञासा मुझे पूछने के लिए मजबूर करती है, आप इंडेक्स क्यों चाहते हैं? –

+1

हाँ, मेरी गलती। बेशक एक स्ट्रिंग ... मैं हैंगमन गेम कोडिंग कर रहा हूँ। – markiisi

उत्तर

6

Mark's answer एक भी पत्र के लिए बेहतर है। मैं इसे जोड़ रहा हूं यदि आपका असली सबस्ट्रिंग एक वर्ण से अधिक लंबा है।

आप str.index() उपयोग करना चाहते हैं, यह एक वैकल्पिक start स्थिति ले जा सकते हैं और एक ValueErrorraise होगा अगर वांछित सबस्ट्रिंग नहीं पाया जाता है:

>>> letter = 'e' 
>>> word = 'internet' 
>>> last_index = -1 
>>> while True: 
...  try: 
...   last_index = word.index(letter, last_index + 1) 
...   print last_index 
...  except ValueError: 
...   break 
... 
3 
6 
पाठ्यक्रम 'शब्द' यहाँ का
+2

यदि आप इसका उपयोग करने जा रहे हैं, तो मैं इंडेक्स को उत्पन्न करने वाले जनरेटर फ़ंक्शन में चिपकाने का सुझाव देता हूं। – yak

+0

@yak: काफी सहमत हैं। मैं सिर्फ एक बुनियादी उदाहरण दे रहा था। – Johnsyweb

0

इस प्रयास करें:

word = 'internet' 
letter = 'e' 
[i for i in xrange(len(word)) if word[i] == letter] 
संबंधित मुद्दे