Pythonでlist(リスト)を検索する方法【初心者向け】現役エンジニアが解説
初心者向けにPythonでlistを検索する方法について解説しています。listはシーケンス型の一つで、他言語の配列に似た役割を持つものです。リストの作成方法、各要素の検索方法を実際の例を見ながら学習しましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Pythonでリストの中の要素を検索する方法について解説します。
目次
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
リストの中の要素を検索する方法について詳しく説明していくね!
お願いします!
リストとは
Pythonで用いられるデータには、そのデータの特性に対応したデータ型が用意されています。
例えば、整数にはint型、小数には、float型、文字には、str型といったものです。
しかし、これらのデータ型は、一度に1つだけのデータを扱うことしかできません。
複数のデータをまとめて扱いたいときは、どのようにすればよいのでしょうか。
複数のデータをまとめて扱いたいときによく利用されるデータ型として、リストがあります。
リスト はPythonにおいて非常に汎用性の高いデータ型の1つです。
リストを作るには、カンマで区切られた複数の値 (個々を要素と呼びます) が、角カッコ[ ] により囲みます。
リストの要素は必ずしもすべて同じデータ型である必要はなく、文字、整数、小数などを混在させることが可能です。
以下は、3つのリストを作成した例です。
list1 = ['physics', 'chemistry', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ["a", "b", "c", "d"]
作成されるリストには、順番(インデックス)があり、この順番によって特定の要素を指定することができます。
なお、リストの順番は0から始まります。
つまり、上記のlist1の0番目の要素は ‘physics’ 、 list2の3番目の要素は4です。
Pythonでは、リスト中の要素を精査し、ある要素の位置や数を検索することもできます。
上記のように短いリストであれば目視で検索することも可能です。
ただ実際のプログラミングでは、表示しきれないほど長いリストを扱ったり、次々とリストが出力されたりします。
そのような場合には、リストの中の要素の位置や数をプログラムで処理するテクニックが必要です。
リスト中の要素を検索する方法(存在・位置・個数)
それでは、リスト中の要素について検索するいくつかの方法を紹介します。
1. ある要素がリストの中にあるかどうかを検索したい場合
このような場合には、「in」演算子を用いて、以下のように書きます。
検索したいオブジェクト in リストオブジェクト
検索したいオブジェクトが右辺のリストオブジェクトの要素の中に存在している場合は、「True」を返します。
存在しない場合には「False」を返します。
例えばこのように記述します。
list = ["A", "B", "C"] “B” in list
2. ある要素のリスト内での順番(インデックス)を検索したい場合
順番(インデックス)とは、「リストの中で何番目」を表す値 (0以上の整数) です。
ある要素の順番(インデックス)を検索したい場合には、indexメソッドを用いて以下のように書きます。
リストオブジェクト.index(要素)
順番(インデックス)を検索したい要素がリスト中に含まれている場合は、最初に合致した要素の順番(インデックス)を返します。
同じ要素が複数個含まれる場合でも、indexメソッドの返り値は最初の要素の順番(インデックス)のみです。
例えばこのように記述します。
list = ["A", "B", "C"] list.index(“B”)
なお、indexメソッドで指定した要素が存在しない場合、ValueErrorというエラーが返されますので、注意が必要です。
上記のlistにおいて、”D”の要素を探そうとした場合、以下のようになります。
list.index(“D”)
ValueError : ‘D’ is not in list
3. ある要素がリスト中にいくつ含まれるかを検索したい場合
リスト中における特定の要素の個数を数える場合、countメソッドを用います。
リストオブジェクト.count(要素)
検索したいオブジェクトがリスト中に含まれる数を返却します。
例えばこのように記述します。
list = ["A", "B", "C", "B"] list.count(“B")
実際に書いてみよう
ここでは、コマンドラインを使ってPythonでリスト中の要素を検索する手法を実際に書いてみましょう。
コマンドラインとはコンピュータに指令を出すためのソフトウェアで、Windowsではコマンドプロンプト、MacやLinuxではターミナルという名前のアプリケーションを指します。
1. ある要素がリストの中にあるかどうかを検索したい場合
list = ["A", "B", "C", "D", "B"] print(list) # 定義したlistが出力されます >> ["A", "B", "C", "D", "B"] # "B"がlist中にあるかを検索してみます print("B" in list) # "B"はlist中にあるので、Trueが出力されます >> True # "E"がlist中にあるかを検索してみます print("E" in list) # "E"はlist中にないので、Falseが出力されます >> False
2. ある要素のリスト内での順番(インデックス)を検索したい場合
先程定義したリスト中における”B”の位置を検索してみましょう。
print(list.index("B")) # "B"は1番目の要素なので、1が出力されます。listは0番目から始まることに注意しましょう。 >> 1
3. ある要素がリスト中にいくつ含まれるかを検索したい場合
# 先程定義したlist中で、"B"が何個含まれるかを検索してみましょう print(list.count(“B")) "B"は2個あるので、2が出力されます >> 2
まとめ
今回は、Pythonでリスト中の要素を検索する方法を扱いました。
リストはPythonで広く使われる型なので、ぜひ要素の取り扱い方法もマスターしておきましょう。
また、同じように複数のデータをまとめて扱うデータ型はリスト以外にもありますので、ぜひ他のデータ型についても調べてみてください。
執筆してくれたメンター
川井健滉(かわいたけあき)
フリーランスエンジニア(の卵)。Pythonでの開発力を売りに、種々システムの設計から実装まで行う。 過去には、某大手サイトの開発 / 機械学習モデルの汎用性検証 / CBの作成など、幅広く経験。 元々はカフェのオーナー。しかしコーヒーは飲めない。 |
内容が分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
Pythonを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPythonコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、人工知能(AI)や機械学習の基礎を完全オンラインでしっかり習得できます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!