ホームページ >バックエンド開発 >Python チュートリアル >Pythonで部分文字列を見つける方法

Pythonで部分文字列を見つける方法

伊谢尔伦
伊谢尔伦オリジナル
2017-06-28 13:27:011703ブラウズ

この記事では主に Python文字列 で部分文字列を見つけるためのヒントを紹介します。必要な友人はそれを参照してください

文字列 s2 に s1 が含まれているかどうかを確認するプログラムを作成するように求められた場合。おそらく、次のコードを直感的に書くことができるでしょう:

#determine whether s1 is a sub
stringof s2 def isSubstring1(s1,s2): 
    tag = False 
    len1 = len(s1) 
    len2 = len(s2) 
    for i in range(0,len2): 
        if s2[i] == s1[0]: 
            for j in range(0,len1): 
                if s2[i]==s1[j]: 
                    tag = True 
    
return tag

しかし、これは Python であり、文字列に付属する find() メソッドを使用できるので、これを行うことができます:

def isSubstring2(s1,s2): 
    tag = False 
    if s2.find(s1) != -1: 
        tag = True 
    return tag


悲しいことに、これは次のことが判明しました。 Python in キーワード「in」は、リスト、プリミティブなどデータ型だけでなく、文字列にも使用できます。したがって、ここでそれを行うには 1 行のコードだけが必要です:

def isSubstring3(s1,s2):
    return s1 in s2


後から気づいたのですが、恥ずかしいです;-)

同様に、文字列内に複数の部分文字列が存在するかどうかを調べて出力したいとします。これらの文字列を取り出して、最初に表示される場所:

def findSubstrings(substrings,destString):
    res =  map(lambda x:str([destString.index(x),x]),filter(lambda x:x in destString,substrings))
    if res:
        return ', '.join(list(res))
 
;-)  very cool~


更新: 最後にある一見複雑な構文に慣れていなくても問題ありません。より簡潔なリスト解析を使用できます:

def findSubstrings(substrings,destString):
    return ', '.join([str([destString.index(x),x]) for x in substrings if x in destString])


以上がPythonで部分文字列を見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。