Python

Pythonicな書き方メモ

NG記号リストをもとに、文字列にNG記号が入ってないかチェックするコード

まずNGリストと判定したい文字列を用意する

ng_list = ["\\", "/", "?", "*", "[", "]"]
value = "hello world?"

手始めに内包表記でNGリストを1個ずつ取り出すループ

print([char for char in ng_list]) 
# ['\\', '/', '?', '*', '[', ']']

次に char in value として、取り出した記号が文字に含まれてるかを判定するループにする

print([char in value for char in ng_list]) 
# [False, False, True, False, False, False]

最後に判定結果のリストをany()に渡せば「1個でもTRUEがあったらアウト」というロジックとなる

if any(char in value for char in ng_list):
    raise ValueError(f"NG記号が含まれています:{ng_list}")
# ValueError: NG記号が含まれています:['\\', '/', '?', '*', '[', ']']

-Python