Pythonで文字列が含まれているかどうかを調べる
あいかわらず、ログファイルを集計している。
ログファイルに特定の文字が現れる行の行数を数えたい。
文字が含まれているかどうか
strのfindを使うと、他の言語のindexOfの様に位置を出現個所の位置を返してくれるようだ。
line = 'test message'
print(line.find('mes'))
print(line.find('mec'))
上記の例だと、最初が5、次が-1が返る。
-1より大きいかどうかを判断すれば文字が含まれるかどうかをチェックできる。
しかし、今回は位置は必要ない。
そういう場合は、配列に含まれているかどうかと同様に in を使えばよい。
line = 'test message'
print('mes' in line)
print('mec' in line)
上記の例だと、最初がTrue、次がFalseが返る。
スマート。
そして、統一感がある。
まとめ
inで含まれているかどうかが、配列でもディクショナリでも文字列でも扱えるところは統一感があって素晴らしい。
ちなみに、Kotlinであればcontainsがそれにあたるのだろう。
同じタグの記事
- BOM付きUTF-8からBOMを除去するpython
- jythonのヒープメモリ設定
- Kotlin1.2.50がリリースされていた
- macOSをHigh Sierraに更新した。スクリプト実行環境のバージョンは変わったのか
- macOSをMojaveに更新した。スクリプト実行環境のバージョンは変わったか
- pathlib.Pathを調べる
- pyenvでpython環境をインストール
- pyenvとvirtualenvでpython環境を構築
- python unpack
- python3で数値のlistを文字列のlistに変換
同じカテゴリの記事
コメントを残す