icon
icon

Pythonでlist(リスト)を検索する方法【初心者向け】現役エンジニアが解説

初心者向けにPythonでlistを検索する方法について解説しています。listはシーケンス型の一つで、他言語の配列に似た役割を持つものです。リストの作成方法、各要素の検索方法を実際の例を見ながら学習しましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Pythonでリストの中の要素を検索する方法について解説します。

 

目次

1時間でできる無料体験!

 

田島悠介

今回は、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では、リスト中の要素を精査し、ある要素の位置や数を検索することもできます。

上記のように短いリストであれば目視で検索することも可能です。

ただ実際のプログラミングでは、表示しきれないほど長いリストを扱ったり、次々とリストが出力されたりします。

そのような場合には、リストの中の要素の位置や数をプログラムで処理するテクニックが必要です。

 

[PR] 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

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

まとめ

今回は、Pythonでリスト中の要素を検索する方法を扱いました。

リストはPythonで広く使われる型なので、ぜひ要素の取り扱い方法もマスターしておきましょう。

また、同じように複数のデータをまとめて扱うデータ型はリスト以外にもありますので、ぜひ他のデータ型についても調べてみてください。

 

執筆してくれたメンター

川井健滉(かわいたけあき)

フリーランスエンジニア(の卵)。Pythonでの開発力を売りに、種々システムの設計から実装まで行う。

過去には、某大手サイトの開発 / 機械学習モデルの汎用性検証 / CBの作成など、幅広く経験。
直近ではWebスクレイピングシステムやデータを活用した機械制御モデルの構築に従事。

元々はカフェのオーナー。しかしコーヒーは飲めない。

 

大石ゆかり

内容が分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

1時間でできる無料体験!

Pythonを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのPythonコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、人工知能(AI)や機械学習の基礎を完全オンラインでしっかり習得できます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する