【Python】in演算子でリスト(List)に特定した要素が含まれるか判定する!
リスト(List)にin演算子を使うことで、リスト内に特定した要素が含まれるかどうか判定することができます。
in演算子とは値がオブジェクト(リスト、範囲、文字列等)に存在するかどうかを確認する際に使用され、指定した要素が存在する場合はTrueを存在しない場合はFalseを返すようになります。
また、in演算子は1次元リストだけでなく、2次元や3次元の多次元リストでも使用することができますが、インデックスを後ろに指定しなければならないので、まとめて確認したい場合は多次元リストを1次元リストに直してからin演算子を使用した方が良いです。
今回はin演算子でリスト(List)に特定した要素が含まれるかどうかを判定する方法について以下の内容で解説していきます。
⚫︎ in演算子とは
⚫︎ リスト(List)とは
⚫︎ 特定する要素がリストに含まれている場合
⚫︎ 特定する要素がリストに含まれていない場合
⚫︎ 2次元リストに特定した要素が含まれるか判定する場合
⚫︎ 3次元リストに特定した要素が含まれるか判定する場合
⚫︎ 多次元リスト特定した要素が含まれるかをまとめて判定する方法
⚫︎ 特定する要素がリストに含まれていないかを判定する方法
目次
in演算子とは
冒頭でもいいましたがin演算子とは、値がオブジェクト(リスト、範囲、文字列等)に存在するかどうかを確認するために使用されます。
また、forループの繰り返し処理を行う場合にも使用されます。
in演算子を使ったサンプルコード
ここでinを使った簡単なサンプルコードを見てみましょう。
例
1 2 3 4 |
fruits = ["リンゴ", "バナナ", "イチゴ"] print("バナナ" in fruits) print("ぶどう" in fruits) |
出力結果
True
False
「バナナ」はfruitsの中にありますのでTrueが返され、「ぶどう」はfruitsの中にはありませんのでFalseが返されています。
ここでは詳しく説明はしませんがもし、in演算子について知りたい場合はこちらをご参考ください。
リスト(List)とは
リスト(List)とは、整数、浮動小数点数、文字列などのデータを格納することができる型になります。
要素には順序があり、インデックスを用いて要素を指定できます。
また、タプル違って要素の変更することも可能です。
リストを使ったサンプルコード
ここでリストを使った簡単なサンプルコードを見てみましょう。
例
1 2 3 |
fruits = ["リンゴ", "バナナ", "イチゴ"] print(fruits) |
出力結果
[‘リンゴ’, ‘バナナ’, ‘イチゴ’]
fruitsのリストの中にある要素が表示されています。
ここでは詳しく説明はしませんがもし、リスト(List)について知りたい場合はこちらをご参考ください。
リスト(List)に特定した要素が含まれるか判定するサンプルコード
in演算子にをリスト(List)に特定した要素が含まれるか判定するサンプルコードを解説していきます。
特定する要素がリストに含まれている場合
特定する要素がリストに含まれている場合はTrueを返すようになります。
例
1 2 3 4 |
fruits = ["リンゴ", "バナナ", "イチゴ", "メロン"] print('リンゴ' in fruits) print('バナナ' in fruits) |
出力結果
True
True
「リンゴ」や「バナナ」は要素の中にありませんのでTrueが返されています。
特定する要素がリストに含まれていない場合
特定する要素がリストに含まれていない場合はFalseを返すようになります。
例
1 2 3 4 |
fruits = ["リンゴ", "バナナ", "イチゴ", "メロン"] print('りんご' in fruits) print('ばなな' in fruits) |
出力結果
False
False
「りんご」や「ばなな」は要素の中にありませんのでFalseが返されています。
多次元リスト(List)に特定した要素が含まれるか判定するサンプルコード
先ほどは、1次元リスト(List)を対象に特定した要素が含まれるかを判定していましたが、次は多次元リスト(List)に特定した要素が含まれるか判定するサンプルコードを紹介します。
2次元リストに特定した要素が含まれるか判定する場合
in演算子で2次元リストに特定した要素が含まれるか判定を行ってみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
fruits =[ ['リンゴ', 'バナナ', 'イチゴ', 'メロン'], ['グレープ', 'パイナップル', 'マンゴー', 'マスカット'] ] print('・2次元リストに「リンゴ」が含まれるか判定') print('リンゴ' in fruits) print('・2次元リストの1次元リストに「グレープ」が含まれるか判定') print('グレープ' in fruits) print('・2次元リストの1次元リストに「リンゴ」が含まれるか判定') print('リンゴ' in fruits[0]) print('・2次元リストの1次元リストに「グレープ」が含まれるか判定') print('グレープ' in fruits[1]) |
出力結果
・2次元リストに「リンゴ」が含まれるか判定
False
・2次元リストの1次元リストに「グレープ」が含まれるか判定
False
・2次元リストの1次元リストに「リンゴ」が含まれるか判定
True
・2次元リストの1次元リストに「グレープ」が含まれるか判定
True
「りんご」や「ばなな」は2次元リストの要素の中にはありませんのでFalseが返されています。
しかし、2次元リストの1次元リストの要素の中にはありますのでTrueが返されています。
3次元リストに特定した要素が含まれるか判定する場合
in演算子で3次元リストに特定した要素が含まれるか判定を行ってみます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
fruits =[ [['リンゴ', 'バナナ', 'イチゴ', 'メロン'],['グレープ', 'パイナップル', 'マンゴー', 'マスカット']], [['Apple', 'Banana', 'Strawberry', 'Watermeron'],['Grape', 'Pineapple', 'Mango', 'Muscat']] ] print('・3次元リストに「Apple」が含まれるか判定') print('Apple' in fruits) print('・3次元リストに「Muscat」が含まれるか判定') print('Muscat' in fruits) print('・3次元リストの2次元リストに「Apple」が含まれるか判定') print('Apple' in fruits[0]) print('・3次元リストの2次元リストに「Muscat」が含まれるか判定') print('Muscat' in fruits[1]) print('・3次元リストの1次元リストに「Apple」が含まれるか判定') print('Apple' in fruits[1][0]) print('・3次元リストの1次元リストに「Muscat」が含まれるか判定') print('Muscat' in fruits[1][1]) |
出力結果
・3次元リストに「Apple」が含まれるか判定
False
・3次元リストに「Muscat」が含まれるか判定
False
・3次元リストの2次元リストに「Apple」が含まれるか判定
False
・3次元リストの2次元リストに「Muscat」が含まれるか判定
False
・3次元リストの1次元リストに「Apple」が含まれるか判定
True
・3次元リストの1次元リストに「Muscat」が含まれるか判定
True
「Apple」や「Muscat」は3次元リストや3次元リストの2次元リストの要素の中にはありませんのでFalseが返されています。
しかし、3次元リストの1次元リストの要素の中にはありますのでTrueが返されています。
多次元リスト特定した要素が含まれるかをまとめて判定する方法
先ほどは、多次元リストの特定した要素が含まれるか判定しましたが、毎回インデックスを指定するのは面倒です。
しかし、以下のように記述すると多次元リスト特定した要素が含まれるかをまとめて判定することができます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
fruitsA =[ ['リンゴ', 'バナナ', 'イチゴ', 'メロン'], ['グレープ', 'パイナップル', 'マンゴー', 'マスカット'] ] fruitsA1 = [] for i in fruitsA: for j in i: fruitsA1.append(j) print('・2次元リストに特定の要素が含まれるかをまとめて判定') print('パイナップル' in fruitsA1) print('オレンジ' in fruitsA1) fruitsB =[ [['リンゴ', 'バナナ', 'イチゴ', 'メロン'],['グレープ', 'パイナップル', 'マンゴー', 'マスカット']], [['Apple', 'Banana', 'Strawberry', 'Watermeron'],['Grape', 'Pineapple', 'Mango', 'Muscat']] ] fruitsB1 = [] for i in fruitsB: for j in i: for k in j: fruitsB1.append(k) print('・3次元リストに特定の要素が含まれるかをまとめて判定') print('イチゴ' in fruitsB1) print('キウイ' in fruitsB1) |
出力結果
・2次元リストに特定の要素が含まれるかをまとめて判定
True
False
・3次元リストに特定の要素が含まれるかをまとめて判定
True
False
for文によって多次元リストの要素を取り出し、新しい1次元リストに対してin演算子を使用することで、多次元リスト特定した要素が含まれるかをまとめて判定することができます。
その為、「パイナップル」や「オレンジ」は3次元リストや2次元リストの要素の中にはありますのでTrueが返され、「イチゴ」や「キウイ」は3次元リストや2次元リストの要素の中にはありませんのでFalseが返されます。
特定する要素がリストに含まれていないかを判定する方法
特定する要素がリストに含まれていないかを判定するにはnot in演算子を使用します。
not in演算子とはin演算子の逆であり、特定する要素がリストに含まれていない場合にTrueを、含まれている場合はFalseを返します。
例
1 2 3 4 5 6 7 |
fruits =['Apple', 'Banana', 'Strawberry', 'Watermeron','Grape', 'Pineapple', 'Mango', 'Muscat'] print('・「Apple」の要素が含まれていないか判定') print('Apple' not in fruits) print('・「りんご」の要素が含まれていないか判定') print('りんご' not in fruits) |
出力結果
・「Apple」の要素が含まれていないか判定
False
・「りんご」の要素が含まれていないか判定
True
not in演算子によって特定する要素がリストに含まれていないかを判定しています。
その為、「Apple」の要素はリストに含まれているので「False」を、「りんご」の要素は含まれていないので「True」が返されています。
今回のポイント
in演算子でリスト(List)に特定した要素が含まれるか判定
⚫︎ リスト(List)にin演算子を使用することで特定した要素が含まれるか判定することができる
⚫︎ in演算子はリストに特定した要素が含まれる場合はTrueを、含まれない場合はFalseを返す
⚫︎ in演算子は1次元リストだけでなく、2次元リストや3次元リストなどの多次元リストに特定した要素が含まれるか判定することができる
⚫︎ 多次元リスト特定した要素が含まれるかをまとめて判定するには、for文によって多次元リストの要素を取り出し、新しい1次元リストに対してin演算子を使用する
⚫︎ 特定する要素がリストに含まれていないかを判定するにはnot in演算子を使用する
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。