【4 weeks challenge – Python】Day 7 文字列内に任意の文字を含むかをTrue/Falseで返す

daily_trial

こんにちは、しらすです。

7日目です。本日の習得スキルは「文字列内に任意の文字を含むかをTrue/Falseで返す」です!

文字列内に任意の文字を含むかをTrue/Falseで返すでできること

文字列内の任意の文字を検索でき、結果をTrue/Falseで取得することができます。

使い方

#変数定義
str_A = "test_abcdef_trial"

#文字列内に任意の文字を含むかを確認
result1 = str_A.find("abc")
if result1 >= 0:
    result1 = bool(1)      #bool型に変換
else:
    result1 = bool(0)      #bool型に変換

表示結果

おためし編

1次元、2次元のList型に対して実施

"""""""""
1次元のList型に対して検索
"""""""""
#変数定義
list_A = ["abc","bcd","cde","def"]
result2 = []

#文字列内に任意の文字を含むかを確認(list型を一括処理)
for i in list_A:
    result2.append(bool(1) if i.find("b") >= 0 else bool(0))  #if分を一文で記載
"""""""""
2次元のList型に対して検索
"""""""""
#変数定義
matrix_A = [["aaa1","bbb1","ccc1","ddd1"],["aaa2","bbb2","ccc2","ddd2"],["aaa3","bbb3","ccc3","ddd3"]]
result3 =[]

#文字列内に任意の文字を含むかを確認(list型(行列)を一括処理)
for index,content in enumerate(matrix_A):
    temp = []
    for i in content:
        temp.append(bool(1) if i.find("b") >= 0 else bool(0))  #if分を一文で記載  
    result3.append(temp)

少々強引な方法ではありますが、True/Falseで結果を得ることができました。

任意の文字列を含んでいたらそのままの値を、FalseだったらNAを出力

#変数定義
matrix_B = [["abc1","bcd1","cde1","def1"],["abc2","bcd2","cde2","def2"],["abc3","bcd3","cde3","def3"]]
result4 =[]
#任意の文字を含む場合のみ値を出力、それ以外は"NA"を返す
for index,content in enumerate(matrix_B):
    temp = []
    for i in content:
        temp.append(i if i.find("b") >= 0 else "NA")    #返り値を文字列にするだけ
    result4.append(temp)

あまり工夫がないのですが、このように特定の文字列を含む場合はそのままの値を、含まない場合はNAを返すように作成することができました。

コメント