【Python】strip(文字列削除)のライブラリで意図しない文字が消えた

IT
  • コーディングで入れたい値(文字列)から特定の文字列を消したかった
  • stripを使用したところ、意図しないところまで消えてしまい困った
  • replaceで解決したのでmemo

背景

やったことと結果

  • "id=dummy"のような値を扱っている時、"id="の部分を消して変数に格納したかった
  • 〇〇.strip("id=")としたら、dummyのdまで消えてummyとなった

原因

  • 削除対象の文字列id=のうち"d"が削除後dummyの先頭にあったため
    • 削除後の文字列の先頭・最後に対象文字が含まれている場合は消えてしまう
    • stripの仕様みたい

対策

  • 結論:replaceでやりたいことができた
    • 〇〇.strip("id=)で失敗
    • 〇〇.replace("id=", "")で意図した挙動に
      • 文字列"id="を空文字に置き換える処理

コード

# 基本的には同じ結果になる
str1 = "Hello World!"
print(str1 + "の場合")
print("stripの結果 → " + str1.strip("World!"))
print("replaceの結果 → " + str1.replace("World!", ""))

print("----------")

# 一部のケースで意図しない文字がstripでは消える
str2 = "id=dummy"
print(str2 + "の場合")
print("stripの結果 → " + str2.strip("id="))
print("replaceの結果 → " + str2.replace("id=", ""))

コード結果

  • 基本的にstripで問題ないが、場合によっては意図しない文字まで消えるケースがあるので注意

参考URL

コメント

タイトルとURLをコピーしました