【Python】Python ~ 基本編 / 文字列比較 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2019/10/12/075251
https://dk521123.hatenablog.com/entry/2021/06/07/164858

の続き。

find() って文字列比較で使っているコードをみて、
あんまり使ったことなかったので、調べてみた。
(調べた結果、個人的には、findなんて使うなよって思ったが)

で、文字列比較について、まとめてみた。

目次

【1】完全一致
【2】部分一致
 別解:find() について
【3】前方一致・後方一致(先頭・末尾)

【1】完全一致

* == / != を使えばいい

【2】部分一致

* in / not in を使えばいい

サンプル

input_data = "hello_world.zip"

# True
print('.zip' in input_data)
# False
print('.txt' in input_data)

# Zip!!!
if '.zip' not in input_data:
  print('Not zip...')
else:
  print('Zip!!!')

# Test2
input_data = "select * from user;"

# True
print('user' in input_data)
# False
print('account' in input_data)

別解:find() について

* str.find() を使ってもできる。
 => 対象文字列を見つけたら、その文字位置を返す
 => 対象文字列がなければ、「-1」を返す

サンプル

input_data = "hello_world.zip"

# 11
print(input_data.find('.zip'))
# -1
print(input_data.find('.txt'))

# zip!!!
if input_data.find('.zip') < 0:
  print('Not zip...')
else:
  print('Zip!!!')

【3】前方一致・後方一致(先頭・末尾)

startswith(), endswith()

サンプル

target_str = "aaabbbccc"
# startswith
# True
print(target_str.startswith("aaa"))
# False
print(target_str.startswith("aab"))
# endswith
# True
print(target_str.endswith("ccc"))
# False
print(target_str.endswith("bcc"))

参考文献

https://www.headboost.jp/python-string-comparisons/

関連記事

Python ~ 基本編 / 文字列 ~
https://dk521123.hatenablog.com/entry/2019/10/12/075251
Python ~ 基本編 / 先頭・末尾の文字列除去 ~
https://dk521123.hatenablog.com/entry/2021/06/07/164858