উত্তর:
আপনি ব্যবহার করতে পারেন rfind()বা পাইথন 2 লিঙ্কগুলি: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()ফিরে আসে (পাইথন 2 লিঙ্ক :)।-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.rindex(str, beg=0 end=len(string))
পরামিতি
str - এটি অনুসন্ধান করার জন্য স্ট্রিংটি নির্দিষ্ট করে।
ভিক্ষা - এটি সূচনা সূচক, ডিফল্টরূপে এটি 0 হয়
লেন - এটি সূচকটি সমাপ্ত হচ্ছে, ডিফল্টরূপে তার স্ট্রিংয়ের দৈর্ঘ্যের সমান।
প্রত্যাবর্তন মান
এই পদ্ধতিটি শেষ সূচকটি ফেরত দেয় যদি অন্যথায় খুঁজে পাওয়া যায় না তবে ব্যতিক্রম উত্থাপন করে।
উদাহরণ
নীচের উদাহরণে রিনডেক্স () পদ্ধতির ব্যবহার দেখানো হয়েছে।
সরাসরি নমুনা
str1 = "this is string example....wow!!!";
str2 = "is";
print str1.rindex(str2)
print str1.index(str2)
যখন আমরা প্রোগ্রামের উপরে চলে যাই, এটি নিম্নলিখিত ফলাফল তৈরি করে -
5
2
উল্লেখ: পাইথন স্ট্রিং রিনডেক্স () পদ্ধতি - টিউটোরিয়ালপয়েন্ট
strপরিবর্তনশীল নাম হিসাবে ব্যবহার না করার জন্য +1 । অজগর থেকে অন্য পরিবর্তনশীল নামটি এড়ানো উচিতabc;abcনেটিভ এপিআইতে একটি মডিউল নামে পরিচিত ।