[python] क्या पाइथन में स्ट्रिंग 'युक्त' सबस्ट्रिंग विधि है?



5 Answers

यदि यह केवल एक सबस्ट्रिंग खोज है तो आप string.find("substring") उपयोग कर सकते हैं।

आपको find , index , और हालांकि, जैसे कि वे खोजों को प्रतिस्थापित कर रहे find , के साथ थोड़ा सावधान रहना होगा। दूसरे शब्दों में, यह:

s = "This be a string"
if s.find("is") == -1:
    print "No 'is' here!"
else:
    print "Found 'is' in the string."

यह Found 'is' in the string. मुद्रित होगा Found 'is' in the string. इसी तरह, if "is" in s: True मूल्यांकन करेगा। यह हो सकता है कि आप जो चाहें हो या न हो।

Question

मैं Python में string.contains या string.indexof विधि की तलाश में string.indexof

मैं करना चाहता हूँ:

if not somestring.contains("blah"):
   continue



पायथन में आप इसे प्राप्त कर सकते हैं दो सरल तरीके हैं:

पाइथोनिक तरीका: पाइथन के 'इन' कीवर्ड का उपयोग करना-

दो "तर्क" लेते हैं, बाएं ( सबस्ट्रिंग ) पर एक और दाईं ओर एक, और दाएं तर्क को अधिकार के तर्क में निहित है और यदि नहीं, तो यह False

example_string = "This is an example string"
substring = "example"
print(substring in example_string)

आउटपुट:

True

गैर पायथनिक तरीका: पायथन के str.find का उपयोग करना:

find विधि स्ट्रिंग या -1 के भीतर स्ट्रिंग की स्थिति देता है यदि यह नहीं मिला है। लेकिन बस जांचें कि स्थिति -1 नहीं है या नहीं।

if example_string.find(substring) != -1:
    print('Substring found!')
else:
    print('Substring not found!')

आउटपुट:

Substring found!



यदि आप किसी अन्य शब्द के भीतर निहित एक सबस्ट्रिंग के बजाय पूरे शब्दों के लिए केस-असंवेदनशील खोज की तलाश में हैं:

s = 'This is my text example'
if 'is' not in (w.lower() for w in s.split(string.punctuation + string.whitespace)):
     # do something



तो स्पष्ट रूप से वेक्टर-वार तुलना के लिए कुछ भी समान नहीं है। ऐसा करने के लिए एक स्पष्ट पायथन तरीका होगा:

names = ['bob', 'john', 'mike']
any(st in 'bob and john' for st in names) 
>> True

any(st in 'mary and jane' for st in names) 
>> False



नहीं, कोई string.contains(str) विधि नहीं है, लेकिन ऑपरेटर में है:

if substring in someString:
    print "It's there!!!"

यहां एक जटिल कामकाजी उदाहरण है:

# Print all files with dot in home directory
import commands
(st, output) = commands.getstatusoutput('ls -a ~')
print [f for f in output.split('\n') if '.' in f ]



असल में, आप अजगर में एक स्ट्रिंग में एक सबस्ट्रिंग खोजना चाहते हैं। पायथन में स्ट्रिंग में एक सबस्ट्रिंग की खोज करने के दो तरीके हैं।

विधि 1: ऑपरेटर में

आप एक सबस्ट्रिंग की जांच के लिए पाइथन के ऑपरेटर का उपयोग कर सकते हैं। यह काफी सरल और सहज है। यदि स्ट्रिंग स्ट्रिंग में अन्यथा False पाया गया तो यह True हो जाएगा।

>>> "King" in "King's landing"
True

>>> "Jon Snow" in "King's landing"
False

विधि 2: str.find() विधि

दूसरी विधि str.find() विधि का उपयोग करना है। यहां, हम स्ट्रिंग पर .find() विधि को कॉल करते हैं जिसमें सबस्ट्रिंग मिलती है। हम substring को खोजने () विधि में पास करते हैं और इसके वापसी मूल्य की जांच करते हैं। यदि इसका मान -1 से अधिक है, तो स्ट्रिंग स्ट्रिंग में पाया गया था, अन्यथा नहीं। लौटाया गया मूल्य वह सूचकांक है जहां सबस्ट्रिंग पाया गया था।

>>> some_string = "valar morghulis"

>>> some_string.find("morghulis")
6

>>> some_string.find("dohaeris")
-1

मैं आपको पहली विधि का उपयोग करने की सलाह दूंगा क्योंकि यह अधिक पाइथोनिक और सहज है।




Related