जवाबों:
आप Python2 लिंक का उपयोग rfind()या उपयोग कर सकते हैं :rindex()
rfind() rindex()
>>> s = 'Hello StackOverflow Hi everybody'
>>> print( s.rfind('H') )
20
>>> print( s.rindex('H') )
20
>>> print( s.rfind('other') )
-1
>>> print( s.rindex('other') )
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
अंतर यह है कि जब सबस्ट्रिंग नहीं मिला है, तो अपवाद के दौरान rfind()रिटर्न (Python2 लिंक:) उठता है ।-1rindex()ValueErrorValueError
यदि आप rfind()रिटर्न कोड की जांच नहीं करना चाहते हैं -1, तो आप पसंद कर सकते हैं rindex()कि एक समझने योग्य त्रुटि संदेश प्रदान करेगा। और आप उन मिनटों की खोज कर सकते हैं जहाँ -1आपके कोड के भीतर से अप्रत्याशित मान आ रहा है ...
>>> txt = '''first line
... second line
... third line'''
>>> txt.rfind('\n')
22
>>> txt.rindex('\n')
22
इसे इस्तेमाल करे:
s = 'hello plombier pantin'
print (s.find('p'))
6
print (s.index('p'))
6
print (s.rindex('p'))
15
print (s.rfind('p'))
more_itertoolsसभी के सूचकांकों को खोजने के लिए पुस्तकालय प्रदान करता है उपकरण वर्ण या सभी सबस्ट्रिंग ।
दिया हुआ
import more_itertools as mit
s = "hello"
pred = lambda x: x == "l"
कोड
पात्र
अब वहाँ rlocateउपकरण उपलब्ध है:
next(mit.rlocate(s, pred))
# 3
एक पूरक उपकरण है locate:
list(mit.locate(s, pred))[-1]
# 3
mit.last(mit.locate(s, pred))
# 3
सबस्ट्रिंग
window_sizeकई वस्तुओं की अग्रणी वस्तु का पता लगाने के लिए एक पैरामीटर भी उपलब्ध है:
s = "How much wood would a woodchuck chuck if a woodchuck could chuck wood?"
substring = "chuck"
pred = lambda *args: args == tuple(substring)
next(mit.rlocate(s, pred=pred, window_size=len(substring)))
# 59
एक निष्क्रिय पोस्ट को फिर से जीवित करने की कोशिश नहीं की जा रही है, लेकिन चूंकि यह अभी तक पोस्ट नहीं किया गया है ...
(इस सवाल को खोजने से पहले मैंने ऐसा कैसे किया)
s = "hello"
target = "l"
last_pos = len(s) - 1 - s[::-1].index(target)
स्पष्टीकरण: जब आप अंतिम घटना की खोज कर रहे हैं, तो वास्तव में आप पहली घटना को उलटे हुए स्ट्रिंग में खोज रहे हैं। यह जानते हुए, मैंने किया s[::-1](जो एक उलट स्ट्रिंग लौटाता है), और फिर targetवहां से अनुक्रमित किया गया। तब मैंने किया len(s) - 1 - the index foundक्योंकि हम अपरिवर्तित (यानी मूल) स्ट्रिंग में सूचकांक चाहते हैं ।
हालांकि बाहर देखो! यदि targetएक से अधिक वर्ण हैं, तो आप शायद इसे उलट स्ट्रिंग में नहीं पाएंगे। इसे ठीक करने के लिए, का उपयोग करें last_pos = len(s) - 1 - s[::-1].index(target[::-1]), जो एक उलट संस्करण के लिए खोज करता है target।
आप rindex()स्ट्रिंग में किसी वर्ण की अंतिम घटना प्राप्त करने के लिए फ़ंक्शन का उपयोग कर सकते हैं
s="hellloooloo"
b='l'
print(s.rindex(b))
पायथन स्ट्रिंग रिन्डेक्स () विधि
विवरण
पायथन स्ट्रिंग विधि रिंडेक्स () अंतिम इंडेक्स लौटाता है, जहां सबस्ट्रिंग str पाया जाता है, या यदि कोई ऐसा इंडेक्स मौजूद नहीं है, तो अपवाद को उठाता है, वैकल्पिक रूप से स्ट्रिंग को खोज को प्रतिबंधित करता है [beg: end]।
सिंटैक्स
निम्नलिखित है रिंडेक्स () विधि के लिए सिंटैक्स -
str.rindex(str, beg=0 end=len(string))
पैरामीटर
str - यह खोजे जाने वाले स्ट्रिंग को निर्दिष्ट करता है।
भीख - यह प्रारंभिक सूचकांक है, डिफ़ॉल्ट रूप से 0
len - यह इंडेक्स को समाप्त कर रहा है, डिफ़ॉल्ट रूप से स्ट्रिंग की लंबाई के बराबर है।
रिटर्न वैल्यू
यह विधि पिछले इंडेक्स को लौटाती है अगर मिला नहीं तो एक अपवाद उठता है अगर स्ट्रैट नहीं मिलता है।
उदाहरण
निम्न उदाहरण रिन्डेक्स () विधि के उपयोग को दर्शाता है।
लाइव डेमो
str1 = "this is string example....wow!!!";
str2 = "is";
print str1.rindex(str2)
print str1.index(str2)
जब हम प्रोग्राम के ऊपर चलते हैं, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
5
2
strएक चर नाम के रूप में उपयोग नहीं करने के लिए । एक और परिवर्तनशील नाम जिसे लोगों को अजगर से बचना चाहिएabc;abcदेशी एपीआई में एक मॉड्यूल कहा जाता है।