10. 条件分岐(IF文)

Pythonのif文 inで特定値を含むかの判定方法を徹底解説!(文字列、リスト(配列)、not inなど)

更新日:

Pythonのif文では、inを利用して文字列、リスト(配列)やタプルなどに特定の値が含まれているかを判定することができます。この記事では、if文でinを利用した様々な判定方法を確認していきます。
 
 
in以外のif文全般に関するトピックは、次の記事をご参照ください。
>> 図解!Python if文の徹底解説

 
 

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が新発売!今なら期間限定で89%オフ!!!

if文 inによるリスト(配列)に特定の値が含まれるかの判定

まずリスト(配列)やタプルなどに特定の値が含まれているかを判定する方法を見ていきます。
 
inを用いたif文の記述は以下になります。

if 特定の値 in リストなど:
    Trueの時(含まれている時)に実行する処理

 
それではif文でinを利用した例を確認していきます。
 
変数xの値がリスト[1,2,3,4]に含まれる場合、「Trueです。」と表示します。(含まれない場合、何も表示しません。)xに4を代入し実行すると、リストに4は含まれますので、「Trueです。」と表示されます。

Trueです。

 
 
次にxに3を代入し実行すると、3はリストに含まれませんので、何も表示されませんでした。

 
 
今度は、else文を用いて、リストに値が含まれない場合、「Falseです。」と表示してみましょう。次のようにelse文を追加し、変数xに6を代入し、実行します。

Falseです。

すると、6はリストに含まれませんので、「Falseです。」と表示されました。

 
 

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が新発売!今なら期間限定で89%オフ!!!

if文 inによるrangeで作成されたリスト(配列)に特定の値が含まれるかの判定

inで利用するリスト(配列)は、rangeで作成されたものでも利用することができます。rangeは、連続した数値が含まれるリストを作成する場合に利用します。

rangeに対しては、開始値、終了値、増減量を引数として渡してあげると、その法則に則った数値を含むリストを自動的に作成してくれます。

range([開始値,] 終了値 [, 増減量])

開始値、増減量は省略することも可能です。その場合は、開始値は0、増減量は1とみなされます。また終了値はその数値は含まれません。

 
rangeの例もいくつか確認していきましょう。
 
変数iの値がrange(1, 4)に含まれる場合、「Trueです。」と表示し、含まれない場合、「Falseです。」と表示します。iに3を代入し実行すると、range(1, 4)で作成されたリスト[1, 2, 3]に3は含まれますので、「Trueです。」と表示されます。

Trueです。

 
 
次にiに4を代入し実行すると、range(1, 4)で作成されたリスト[1, 2, 3]に4は含まれませんので、「Falseです。」と表示されます。

Falseです。

 
 

if文 inによる辞書のキーに特定の値が含まれるかの判定

inではリスト(配列)やタプル以外に辞書を用いて、辞書のキーに特定の値が含まれるか否かの判定を行うことができます。

if 特定の値 in 辞書:
    Trueの時(含まれている時)に実行する処理

 
辞書に対して値を追加していく際、既にキーに存在する場合は追加せず、存在しない場合は値を追加するなどの判定に利用すると便利です。

 
 
それでは辞書の例も確認していきます。
 
まず次のようなコードと名前がペアになった辞書{"C01":"Tanaka", "C02":"Sasaki", "C03":"Yamamoto"}を定義し、変数nmdictに格納します。変数xの値が辞書nmdictのキーに含まれる場合、「Trueです。」と表示します。含まれない場合、「False」と表示します。
 
xに”C01”を代入し実行すると、辞書のキーに”C01”は含まれますので、「Trueです。」と表示されます。

Trueです。

 
 
次に、xに”C04”を代入し実行すると、辞書のキーに”C04”は含まれませんので、「Falseです。」と表示されます。

Falseです。

 
 
今度は、xに”Tanaka”を代入し実行するとどうなるでしょうか?

Falseです。

”Tanaka”は辞書の値には含まれますが、辞書のキーには含まれませんので、「Falseです。」と表示されます。

注意ポイント

あくまでも、判定は辞書のキーに対して行われます。

 

 
 

動画教材紹介私(清水 義孝)が作成したコース「Pythonによるビジネスに役立つWebスクレイピング」(Udemyへのリンク)が新発売!今なら期間限定で89%オフ!!!

if文 inでnotによるリスト(配列)に特定の値が含まれていないことの判定

またif文において、特定の値が含まれていないことを判定するには、論理演算子notを用いて次のように記述します。

if 特定の値 not in リスト(配列)など:
    Trueの時(含まれていない時)に実行する処理

 
 
例を確認しましょう。
 
変数xの値がリスト[1,2,3,4]に含まれない場合、「Trueです。」と表示します。また、含まれる場合、「Falseです。」と表示します。先ほどの例とは逆になっています。
 
次のように変数xに3を代入し、実行します。

Trueです。

すると、3はリストに含まれませんので、「Trueです。」と表示されました。

 
 
今度は、変数xに4を代入し、実行します。

Falseです。

すると、4はリストに含まれますので、「Falseです。」と表示されました。
 

 
 

if文 inでand/orによる複数条件に指定方法

if文で条件がいくつかある場合、論理演算子のandやorを利用して、複数の条件を記述できます。それはif文でinを利用している場合も同様です。

 
論理演算子andを用いたif文の記述は以下になり、これらの条件式1、2には、inを用いた文を含めることができます。

if 条件式1 and 条件式2:
    条件式1、条件式2がともにTrueの時に実行する処理

 
また論理演算子orを用いたif文の記述は以下になります。

if 条件式1 or 条件式2:
    条件式1、条件式2のいずれかがTrueの時に実行する処理

 
 
まずは論理演算子andを利用した例から確認していきましょう。
 
次のようなリスト[1,2,4,5]を定義し、変数mylistに格納します。
andを利用して、変数i、jの値がともにリストmylistに含まれる場合、「Trueです。」と表示します。含まれない場合、「False」と表示します。
 
iに4を、jに6を代入し実行すると、

Falseです。

4はリストに含まれますが、6は含まれませんので、「Falseです。」と表示されます。

 
 
今度はiに4を、jに5を代入し実行すると、

Trueです。

4、5ともにリストに含まれますので、「Trueです。」と表示されました。

 
 
次に論理演算子orの例も確認します。
 
先ほどと同様にリスト[1,2,4,5]を定義し、変数mylistに格納します。
 
今度はorを利用して、変数i、jの値のいずれかがリストmylistに含まれる場合、「Trueです。」と表示します。両方とも含まれない場合、「False」と表示します。
 
iに4を、jに6を代入し実行すると、

Trueです。

4はリストに含まれますが、6は含まれません。しかし今度はorを利用しており、いずれかの条件が満たされればOKですので、「Trueです。」と表示されました。

 
 
今度はiに3を、jに6を代入し実行すると、

Falseです。

3、6ともにリストに含まれませんので、「Falseです。」と表示されました。
 

 
 

if文 inによる文字列に特定の値が含まれるかの判定

Pythonのif文では、inを利用して文字列に特定の文字が含まれているかを判定することができます。記述方法は次のようになります。

if 特定の文字 in 文字列:
    Trueの時(含まれている時)に実行する処理

 
 
それでは例を確認していきます。
 
変数xの文字が文字列"shimizu"に含まれる場合、「含まれます。」と表示します。また、含まれない場合、「含まれません。」と表示します。
 
xに”sh”を代入し実行すると、

含まれます。

文字列"shimizu"に”sh”は含まれますので、「含まれます。」と表示されます。

 
 
次に変数xに”im”を代入し実行すると、

含まれます。

”im”も"shimizu"に含まれますので、「含まれます。」と表示されます。このように文字列の途中に含まれていてもOKです。

 
 
最後にxに”ih”を代入し実行すると、

含まれません。

”ih”は含まれませんので、「含まれません。」と表示されます。

 

 
 
関連記事です。
Pythonのif文全般のトピックについては、こちらに纏めた記事がございます。

 
Pythonに関する重要なトピック全般について学んでいきたいと考えておられる方には、次のリンクをお勧めします。
 






まとめ記事

1

Python3におけるWEBスクレイピングのやり方について初心者向けに解説した記事です。   Requests、Beautiful Soup、Selenium、Pandas、newspape ...

2

Pythonの基本的なトピックについて、チュートリアル形式で初心者向けに解説した記事です。プログラミング未経験者や初心者でもわかりやすいよう、丁寧に解説しています。   Pythonでデータ ...

3

Pandas(パンダス)とは、データを効率的に扱うために開発されたPythonのライブラリの1つで、データの取り込みや加工・集計、分析処理に利用します。   Pandasには2つの主要なデー ...

4

データ分析、機械学習、ディープラーニングにはグラフの描画による可視化は不可欠です。データは、加工前の状態ではただの数字の羅列でしかなく、一目で必要な情報が伝わるものではありません。それを集計しグラフに ...

5

NumPy(ナンパイ)は、数値計算を効率的に行うための拡張ライブラリです。ベクトルや行列などを効率的に数値計算するための数学関数ライブラリを提供します。NumPyを使うことにより、数値計算をより早く、 ...

-10. 条件分岐(IF文)

Copyright© AI-interのPython3入門 , 2020 All Rights Reserved.