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





7 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 मूल्यांकन करेगा। यह हो सकता है कि आप जो चाहें हो या न हो।

python string substring contains

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

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

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



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

विधि 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

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




नहीं, कोई 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 ]



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

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



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

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

दो "तर्क" लेते हैं, बाएं ( सबस्ट्रिंग ) पर एक और दाईं ओर एक, और दाएं तर्क को अधिकार के तर्क में निहित है और यदि नहीं, तो यह 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!



आपका जवाब यहां दिया गया है:

if "insert_char_or_string_here" in "insert_string_to_search_here":
    #DOSTUFF

यह जांचने के लिए कि क्या यह गलत है:

if not "insert_char_or_string_here" in "insert_string_to_search_here":
    #DOSTUFF

या:

if "insert_char_or_string_here" not in "insert_string_to_search_here":
    #DOSTUFF



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

import string

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





Related