পাইথন স্ট্রিংয়ের উপ-স্ট্রিংয়ের প্রথম উপস্থিতিটি কীভাবে খুঁজে পাব?


123

সুতরাং যদি আমার স্ট্রিংটি হয় "দোস্ত একটি দুর্দান্ত বন্ধু"।
আমি 'বউ' এর প্রথম সূচকটি খুঁজে পেতে চাই:

mystring.findfirstindex('dude') # should return 4

এর জন্য পাইথন কমান্ড কী?
ধন্যবাদ।

উত্তর:


213

find()

>>> s = "the dude is a cool dude"
>>> s.find('dude')
4

20
এটি -1যদি পাওয়া না যায় তবে ফিরে আসে
— ক্রিস্টোফ রুসি

আমি যদি isবাক্যটি থেকে শব্দটি খুঁজতে চাই this is a cool dude? আমি সন্ধানের পদ্ধতিটি চেষ্টা করেছিলাম তবে এটি 5 এর পরিবর্তে 2 সূচক ফেরত দেয় আমি কীভাবে এটি সন্ধান করব ()?
— রেজিস্টার

@ রেগ্রেসার: রেজেক্স এবং শব্দের সীমানা দেখুন।
— যান্ত্রিক_মেট

28

দ্রুত ওভারভিউ: indexএবংfind

findপদ্ধতির পাশের পাশাপাশি রয়েছে index। findএবং indexউভয়ই একই ফল দেয়: প্রথম ঘটনাটির অবস্থানটি ফিরিয়ে দেওয়া, তবে যদি কিছু না পাওয়া যায় তবে কিছুক্ষণের জন্য আয় indexবাড়িয়ে দেয় । স্পিডওয়াইস, উভয়েরই একই মাপদণ্ডের ফলাফল।ValueErrorfind-1

s.find(t)    #returns: -1, or index where t starts in s
s.index(t)   #returns: Same as find, but raises ValueError if t is not in s

অতিরিক্ত জ্ঞান: rfindএবং rindex:

সাধারণভাবে, খুঁজে পেতে এবং সূচক ক্ষুদ্রতম সূচক যেখানে পাস-ইন স্ট্রিং শুরু ফিরে আসুন, এবং rfindএবং rindexবৃহত্তম সূচক যেখানে এটি স্ট্রিং অনুসন্ধানের আলগোরিদিম থেকে অনুসন্ধান অধিকাংশই শুরু আসতে বাম থেকে ডানে , তাই দিয়ে শুরু ফাংশন rইঙ্গিত করে যে অনুসন্ধান থেকে ঘটে অধিকার বামে ।

সুতরাং আপনি যে উপাদানটির সন্ধান করছেন তার সম্ভাবনা তালিকা শুরুর চেয়ে শেষের খুব কাছাকাছি rfindবা rindexদ্রুত হতে পারে।

s.rfind(t)   #returns: Same as find, but searched right to left
s.rindex(t)  #returns: Same as index, but searches right to left

সূত্র: পাইথন: ভিজ্যুয়াল কুইকস্টার্ট গাইড, টবি ডোনাল্ডসন


যদি স্ট্রিংটি সংজ্ঞায়িত হয় input_string = "this is a sentence"এবং আমরা যদি শব্দের প্রথম উপস্থিতিটি খুঁজে পেতে চাই is, তবে এটি কাজ করবে? # first occurence of word in a sentence input_string = "this is a sentence" # return the index of the word matching_word = "is" input_string.find("is")
— রেজিস্ট্রার

1

এটি কোনও অজগর ইনবিল্ট ফাংশন ব্যবহার না করে আলগোরিদিমিক উপায়ে প্রয়োগ করতে। এটি হিসাবে বাস্তবায়ন করা যেতে পারে

def find_pos(string,word):

    for i in range(len(string) - len(word)+1):
        if string[i:i+len(word)] == word:
            return i
    return 'Not Found'

string = "the dude is a cool dude"
word = 'dude1'
print(find_pos(string,word))
# output 4

0
def find_pos(chaine,x):

    for i in range(len(chaine)):
        if chaine[i] ==x :
            return 'yes',i 
    return 'no'

6
দেখে মনে হচ্ছে আপনার ইন্ডেন্টেশন বন্ধ আছে এবং আপনি আপনার উদ্ধৃতি চিহ্নগুলি বন্ধ করতে ভুলে গেছেন। আপনার কোডের ব্যাখ্যা এবং কেন এটি সমস্যার সমাধান করবে পাশাপাশি সহায়ক; দেখতে উত্তর কিভাবে
— Camille

দুঃখিত আমি এটিকে সম্পাদনা করি ... আমার কোডটি কোনও অক্ষরের প্রথম অক্ষরটি খুঁজে তার জায়গাটি ফিরিয়ে দেয়
— বেনমাদানী ইয়াজিদ

0

শ্লোক = "যদি আপনি আপনার মাথাটি ধরে রাখতে পারেন যখন আপনার সমস্ত কিছুই তাদেরকে হারিয়েছে এবং এটি আপনার উপর দোষ দিচ্ছে, \ n যদি সমস্ত মানুষ আপনাকে সন্দেহ করে you n তবে আপনি যদি নিজেকে বিশ্বাস করতে পারেন তবে doub n তবে তাদের সন্দেহের জন্যও ভাতা দিন; n যদি আপনি পারেন অপেক্ষা করুন এবং অপেক্ষা করে ক্লান্ত হয়ে পড়বেন না, \ n বা মিথ্যা বলা হচ্ছে, মিথ্যা কথা বলবেন না, \ n বা ঘৃণা করা হচ্ছে, ঘৃণা করার উপায় দেবেন না, \ n এবং তবুও খুব ভাল লাগছেন না, খুব বুদ্ধিমান কথা বলবেন না : "

enter code here

print(verse)
#1. What is the length of the string variable verse?
verse_length = len(verse)
print("The length of verse is: {}".format(verse_length))
#2. What is the index of the first occurrence of the word 'and' in verse?
index = verse.find("and")
print("The index of the word 'and' in verse is {}".format(index))

স্ট্যাক ওভারফ্লোতে আপনাকে স্বাগতম। আপনি কোনও পুরানো এবং ইতিমধ্যে উত্তর দেওয়া প্রশ্নের (সবুজ চেক-চিহ্নের উত্তর) আরও তথ্য বা আরও ভাল ব্যাখ্যা না দিয়ে উত্তর দিচ্ছেন। সুতরাং এটি মূলত স্বীকৃত উত্তরের সদৃশ হয় । একটু দেখোআমি কীভাবে একটি ভাল উত্তর লিখতে পারি তা ? । (এবং আরও রেফারেন্সের জন্য, কীভাবে দেরিতে স্পষ্টভাবে সদুত্তর ডুপ্লিকেট উত্তরগুলি ('সার্ফিং') জনপ্রিয় প্রশ্নগুলিতে পরিষ্কার করা যায় তা দেখুন )।
— ইভো মরি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.