ホームページ  >  記事  >  バックエンド開発  >  Python で文字列に指定された部分文字列が含まれているかどうかを判断する方法

Python で文字列に指定された部分文字列が含まれているかどうかを判断する方法

青灯夜游
青灯夜游オリジナル
2018-11-17 14:14:1161631ブラウズ

Python は文字列に指定された文字列が含まれているかどうかをどのように判断するのでしょうか?この記事では、文字列に指定された部分文字列が含まれているかどうかを判断する Python の 3 つの方法を紹介します。一定の参考値があるので、困っている友達は参考にしていただければ幸いです。

プログラマが文字列に対して使用する最も一般的な操作の 1 つは、文字列に指定された部分文字列が含まれているかどうかを判断することです。 Python はこれを非常に読みやすく、実装しやすい方法で実行します。これを行うには 3 つの方法があります。

最初: in 演算子を使用します

最も簡単な方法は、Python の in 演算子を使用することです。

in は、左側と右側の 2 つの「パラメータ」を受け取ります。左側のパラメータが右側のパラメータに含まれている場合、true を返します。

次の例を見てみましょう:

>>> str = "Messi is the best soccer player"
>>> result = "soccer" in str
>>> print result
True
>>> result = "football" in str
>>> print result
False

ご覧のとおり、文字列に部分文字列が存在する場合、in 演算子は True を返します。

それ以外の場合は false を返します。

このアプローチは非常にシンプルで、クリーンで、読みやすく、慣用的です。

2 番目: string モジュールの find()/rfind() メソッドを使用します

もう 1 つの使用できるメソッドは、character String find です。方法。

ブール値として評価される in 演算子とは異なり、find メソッドは整数を返します。

この整数は、部分文字列が存在する場合は本質的に部分文字列の先頭のインデックスであり、存在しない場合は -1 が返されます。

実際の find メソッドを見てみましょう。

>>> import string
>>> str = "Messi is the best soccer player"
>>> str.find("soccer")
18
>>> str.rfind("Ronaldo")
-1
>>> str.find("Messi")
0

この方法の優れた点は、開始インデックスと終了インデックスを指定して検索範囲を制限できることです。

例:

>>> import string
>>> str = "Messi is the best soccer player"
>>> str.find("soccer", 5, 25)
18
>>> str.find("Messi", 5, 25)
-1

注: 「Messi」を判定する場合、検索をインデックス 5 から 25 までの文字列に限定しているため、-1 が返されます。

3 番目: 文字列モジュール

##index()/rindex() メソッドのindex()/rindex() メソッドを使用し、find( )/rfind() メソッドは似ていますが、部分文字列が見つからない場合に ValueError 例外が報告される点が異なります。

import string
def find_string(s,t):    
    try:
        string.index(s,t)        
        return True    
    except(ValueError): 
        return False

s='nihao,shijie'
t='nihao'
result = find_string(s,t)
print result  #True

要約: 上記がこの記事の全内容です。皆さんの学習に役立つことを願っています。

以上がPython で文字列に指定された部分文字列が含まれているかどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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