【python】in演算子でリストなどから要素を取り出す方法

python

「リスト中の要素を一つずつ取り出すにはどうすればいいのだろうか?」

「in演算子って結局どこで使うことができるの?」

このようなお悩みを抱えている方はいませんか?

下記の記事で何の説明もなくin演算子を使用していましたが、結局in演算子とは何なのかという説明をまだ一度もしていないことに気が付き、今回のこの記事を作成いたしました。

【python】for文の基本 | エンジニアKISARAGIの備忘録 (kisaragi-it.com)

【python】タプルとは何なのか? | エンジニアKISARAGIの備忘録 (kisaragi-it.com)

可能な限り初心者の方でもわかりやすいように解説していきますので、ぜひ最後までご覧になっていってください。

in演算子とは?

ではそもそもin演算子とは何なのかということですが、基本的な使用方法は下記の2つです。

  • リストなどに特定の要素が含まれているかを判定する
  • for文を使用してリスト中の要素を一つずつ取得する

それぞれ実際の例を見ていきましょう。

まずリストなどに特定の要素が含まれているかを判定するときのコードですが、下記のようになります。

【使用方法】
list1=[1,2,3,4,5]
print(2 in list1)
print(10 in list1)
【実行結果】
True
False

list1に2は含まれているのでTrueという結果となり、10はlist1に含まれていないためFalseという結果が出力されます。

次にリスト中の要素をfor文を使用して一つづつ取得する方法ですが、下記のように記載することでリスト内のデータをすべて取得することが可能となります。

【使用方法】
list1=[1,2,3,4,5]
for i in list1:
    print(i)
【実行結果】
1
2
3
4
5

またin演算子にはnot in演算子というのも存在しますが、名前から分かる通りリストに指定の要素が含まれていなければTrue、含まれていればFalseを下記のように返します。

【使用方法】
list1=[1,2,3,4,5]
print(2 not in list1)
print(10 not in list1)
【実行結果】
False
True

辞書でのin演算子の使用方法

次に辞書型でのin演算子の使用についてです。

辞書型って何?という方は下記を一度読んでみてください。

【python】辞書型の使用方法 | エンジニアKISARAGIの備忘録 (kisaragi-it.com)

まず実際に辞書型の変数から要素を取り出してみたコードを見てみましょう。

【使用方法】
dic1={'key1':'val1','key2':'val2','key3':'val3'}
print('key1' in dic1)
print('val1' in dic1)
【実行結果】
True
False

辞書型の変数内に目的のkeyがあることは判定できましたが、valueがあることは判定することができませんでした。

valueの方を探したいという場合もあるかと思います。

そのような時はvalues()を使用することで判定することができます。

下記のようにdic1変数の後ろにvalues()を記載することでvalueも判定することができるようになります。

dic1={'key1':'val1','key2':'val2','key3':'val3'}

print('val1' in dic1.values())

またkeyとvalueの組み合わせによっての判定もしたいとなった場合は下記のようにitems()を使用することで判定可能となります。

dic1={'key1':'val1','key2':'val2','key3':'val3'}
print(('key2','val2') in dic1.items())

文字列でのin演算子の使用方法

次に文字列でのin演算子の使用方法について解説していきます。

文字列の場合下記のように文字列中の一部が同様となっていた場合でもTrueと判定されます。

【使用方法】
str1='文字列中から特定文字を検索できるのか?'
print('検索' in str1)
print('特定する' in str1)
【実行結果】
True
False

複数要素を判定するためのin演算子

最後にリスト内から複数条件で検索をかける方法について解説していきます。

これまでは単体の条件で検索をかけていましたが、今度は下記のように複数のリスト要素を基に判定を行いたいとします。

【使用方法】
list1=[1,2,3,4,5]
list2=[1,2]
print(list2 in list1)
【実行結果】
False

上記の方法ですと[1,2]というリストを探そうとするため、[1,2,3,4,5]では見つけることができません。

仮に下記のような記載方法ですと、リストを見つけることができ回答はTrueとなります。

list1=[1,2]
list2=[[1,2],[3,4,5]]
print(list1 in list2)

これはリストの中にリストを作成しているため、[1,2]というリストを検索することが可能となります。

ではどうすれば複数条件での要素の検索を実施できるのでしょうか?

それはand、orを使用することで可能となります。

【使用方法】
list1=[1,2,3,4,5]
print(1 in list1 and 2 in list1)
【実行結果】
True

上記のようにlist1に1が含む場合かつ2が含む場合という条件で記載することでTrueという結果を返すことができるようになります。

他にもorを使用することで下記のようにlistに1が含むまたは2が含む場合にTrueと返答するようにすることも可能です。

【使用方法】
list1=[1,2,3,4,5]
print(1 in list1 or 2 in list1)
print(10 in list1 or 2 in list1)
print(1 in list1 or 20 in list1)
【実行結果】
True
True
True

まとめ

この記事でpythonのin演算子について解説してきました。

  • in演算子とは?
  • 辞書でのin演算子の使用方法
  • 文字列でのin演算子の使用方法
  • 複数要素を判定するためのin演算子

何となくin演算子を使用しているという方も多いのではないでしょうか?

in演算子はリスト、for文、辞書など思っている以上に多くの場面で使用することができるようになっていますので、ぜひこの機会に学習することをオススメします。

以上で今回の解説は終了となります。

コメント

タイトルとURLをコピーしました