近年、Pythonが注目を集めています。
Pythonは機械学習の流行の中心にあり、GoogleやUberにおける共通言語として使われています。
今回はその中でもよく使うif文について解説します。
特に
「条件文ifで特定の値の存在をチェックするには」
「inを用いてデータに特定の値が含まれるか調べるには」
「anyを用いて特定の値が一つ以上含まれるか調べるには」
という方法を書きます。
※ この記事のコードはPython 3.7, Ubuntu 18.04で動作確認しました。
なお、Pythonの記事については、こちらにまとめています。
if文で特定の値の存在を調べる方法
inを使った調べ方
まずはif文を使って集合の中にある文字が入っているか調べましょう。
この場合にはinを使います。
例えば「3」が1から3の整数の集合の中に含まれている場合、Trueを返すコードは
if 3 in range(1, 4): print(True)
となります。
not inを使った方法
ifとinを使って集合の中に文字が「入っていない」場合を調べることもできます。
例えば次のコードは「2」が1から3の整数の集合の中に含まれていない場合に”TRUE”という文字列を返すというものです。
if 2 not in range(1,4): print(True)
辞書に特定の値が含まれているか
辞書オブジェクトとは
Pythonにおける辞書オブジェクトは、添字に整数型以外のオブジェクトも使える配列です。
d = {}
で空の辞書が作れます。
辞書はkey(先程添字と行っていたもの)とvalue(要素)の組み合わせで構成されます。
valueはブール値(0か1)、整数、float、タプル、文字列などなんでもOKです。
後から要素を追加・削除・変更することもできます。
例えば次のような形で表されます。
hobby = {"Peter" : "tennis", "Helen" : "traveling", "Lurk" : "basket ball", "Sally" : "golf"}
辞書の中に特定の値の存在を調べる方法
辞書の中のキーに特定の値が含まれているかどうかをifとinを用いて調べることができます。
ここでは上で作った辞書hobbyの中に”Peter”という項目があればTrueと返すコードを書いてみましょう!
if "Peter" in hobby: print("TRUE")
内包表記で複数の値の存在を調べる方法
内包表記とは
内包表記とは要素が持つ共通の性質に着目する書き方です。これでコンパクトにデータ構造を作ることができます!
反対は外延表記と呼ばれるもので、具体的に要素を書き並べるものです。
内包表記で作成したリストには例えば
list(range(-3, 3))
のようなものがあります。
これは外延表記では
[-3, -2, -1, 0, 1, 2]
を意味しています。
Pythonの内包表記では範囲を指定した時に終点の数字(ここでは3)は含まれず、それより一つ前の数字(ここでは2)までになります。
anyとは
any()は引数にリストやタプルを1つ渡し、その性質について調べるものです。
1つでも真とみなせるものがあれば(値があれば)Trueを返し、要素が一つもない空集合であればFalseを返します。
では早速次の例を見て見ましょう!
list = [0, 1, 2] print(any(list))
実行結果:
True
anyで複数の値の存在を調べる方法
それではanyを用いて複数の値が含まれて入るかどうか調べて見ましょう。
以下のコードは全てがTrueの場合のみTrueを返します。
print(any( x%6 == 0 for x in range(0,10)))
実行結果:
True
anyと内包表記によって複数の値が含まれるかどうかチェックする場合には変数のxを用います。
この例では0から9の整数の中で6で割った時に0になるものがあるかどうかをチェックしています。
この場合、6が該当するのでTrueと返ってきます。
まとめ
今回はif, in, anyなどを使ってデータに特定の値が入っているか調べる方法をお伝えしました。
ifの条件文でinによって特定の文字が入っているかどうか、anyによって特定の要素が1つ以上入っているかどうかを調べることができます。
Pythonのプログラミングは短くシンプルに書けるという利点がありますので、その醍醐味をif文でも味わってみてください。