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


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পদ্ধতির পাশের পাশাপাশি রয়েছে indexfindএবং 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.