Pythonでリストの要素を検索・取得する方法!index()やin演算子の活用法
生徒
「Pythonで、リストの中にある特定のデータを探すにはどうしたらいいですか?」
先生
「いい質問ですね。Pythonにはindex()メソッドやinという演算子を使って、リストの中から特定の要素を検索したり、取得したりする方法がありますよ。」
生徒
「それって難しいですか?パソコン初心者でもできますか?」
先生
「とっても簡単です!これからやさしく説明していくので、安心してくださいね!」
1. リストとは?Pythonのリストの基本をおさらい
まず「リスト」とは、Pythonで複数のデータをひとかたまりにして扱える入れ物です。買い物メモのように順番を保ったまま並べられ、あとから数えたり取り出したりできます。似た言葉に「配列」がありますが、Pythonでは日常的な集合はこの「リスト」を使うと覚えてOKです。
リストは[ ](角かっこ)で作り、要素(値)をカンマで区切ります。次のように書きます。
fruits = ["りんご", "バナナ", "みかん"]
この例では、fruitsというリストに3つの果物名が入っています。リストは「順序をもつ」ので、左から0番目・1番目・2番目…と番号(インデックス)が付きます。
基本の確認として、要素数や先頭の要素を取り出してみましょう。
fruits = ["りんご", "バナナ", "みかん"]
print(len(fruits)) # 要素の数(3)
print(fruits[0]) # 0番目(先頭)の要素:「りんご」
空のリストから始めたいときは、[]だけで用意できます。あとで値を入れていくときの土台として便利です。
items = [] # 空のリスト
リストには文字だけでなく数値なども入れられます(混在も可能)。まずは「角かっこで作る」「カンマで区切る」「左から0番目で数える」という3点を押さえておけば、Pythonのリストの基礎はばっちりです。
2. リストの中にあるか確認するには?in演算子を使おう
in(イン)は「その値がリストの中に含まれているか」を調べるためのキーワードです。結果はTrue(ある)かFalse(ない)の二択で返り、初めてでも直感的に使えます。読み方どおり「~の中にある?」と覚えるとスッと入ります。
基本の使い方はとってもシンプルです。
fruits = ["りんご", "バナナ", "みかん"]
print("バナナ" in fruits) # True: 含まれている
print("ぶどう" in fruits) # False: 含まれていない
実行結果は次のとおりです。
True
False
判定結果は、そのまま条件分岐にも使えます。見つかったときだけ処理したい、といった用途に便利です。
fruits = ["りんご", "バナナ", "みかん"]
target = "バナナ"
if target in fruits:
print(f"{target}が見つかりました!")
else:
print(f"{target}はありません。")
反対に「含まれていないこと」を確かめたいときはnot inを使います。
if "ぶどう" not in fruits:
print("ぶどうはリストに未登録です。")
ポイント:完全一致で判定されます。前後の空白や全角・半角の違い、文字の大小の違い(例:"Apple"と"apple")は別物として扱われます。また、数値と文字列も別物です(3 in [1, 2, "3"]はFalse)。まずは「含まれるか」を素早く確かめる道具としてin/not inを覚えておきましょう。
3. リストの中で何番目にあるかを知るには?index()を使おう
リストの中にある要素が、何番目(インデックス)にあるかを調べたいときは、index()メソッドを使います。「インデックス」というのは、リストの中での「順番の番号」のことです。
Pythonでは、リストの一番最初の要素は「0番目」です。
fruits = ["りんご", "バナナ", "みかん"]
print(fruits.index("バナナ"))
実行結果:
1
「バナナ」は2番目に見えますが、Pythonでは0から数えるので「1」と表示されます。
ただし注意点があります。index()を使って、リストの中にない値を指定すると、エラーになってしまいます。
fruits = ["りんご", "バナナ", "みかん"]
print(fruits.index("ぶどう"))
実行結果:
ValueError: 'ぶどう' is not in list
このように、「その値がないよ!」というエラーになります。ですので、index()を使う前に、in演算子で存在を確認しておくと安心です。
4. index()とinを組み合わせて、安全に検索しよう
inで存在を確認してから、index()を使うと、エラーを防げて安全です。
fruits = ["りんご", "バナナ", "みかん"]
search = "ぶどう"
if search in fruits:
print(f"{search}は{fruits.index(search)}番目にあります。")
else:
print(f"{search}はリストの中にありません。")
実行結果:
ぶどうはリストの中にありません。
このように、存在しないデータでもやさしく対応できます。
5. リストに同じ値が複数あるときはどうなる?
リストの中に同じ値が何回も出てくる場合、index()は最初に見つかった場所(最も左側)の番号を返します。
numbers = [10, 20, 30, 20, 40]
print(numbers.index(20))
実行結果:
1
20は2回出てきますが、最初の20が1番目なので、それが返されます。
6. in演算子は文字列にも使える!
in演算子はリストだけでなく、文字列にも使えます。文字の中に特定の単語や文字が含まれているか確認できます。
message = "こんにちは、Python!"
print("Python" in message)
print("Java" in message)
実行結果:
True
False
このように、文字列の中にあるかどうかも調べられます。
7. 覚えよう!index()とinのポイント
in演算子は、値がリストの中にあるかどうかを調べるindex()は、リストの中の値の位置(番号)を調べるindex()は値がないとエラーになるので、inと一緒に使うと安全- リストの番号は0からスタートする
inは文字列にも使える
まとめ
ここまで「Python」「リスト」「要素の検索」「in演算子」「indexメソッド」について学んできました。はじめてプログラミングに触れる方でも、「リストを作る」「その中にあるか確かめる」「何番目か調べる」という一連の流れが身につくと、プログラムを読んだり書いたりする場面でとても役に立ちます。特に、実際の開発や学習では「あるかどうか」「どこにあるのか」を機械的に調べられるというのは、大きな強みになります。 なぜなら、値が存在するかどうかを人の目でひとつずつ確認しなくてよくなり、コンピュータに任せて正確に調べてもらえるからです。たとえばたくさんのデータの中から探す場合、ひとつずつ手作業で確かめるのは大変ですが、Pythonを使えば一瞬で処理できます。 今回紹介した「in演算子」と「indexメソッド」はとても基礎的なものですが、基礎だからこそ多くのプログラムで使われています。まずは小さなリストで練習し、慣れてきたら数字や文字だけでなく、もっと長い文字列や複雑なデータなどにも挑戦してみてください。
リストを調べる基本のサンプル
ここでは、授業で触れた内容をひとつにまとめた例を紹介します。実行結果のイメージもしやすいように、やさしいことばで書いています。
fruits = ["りんご", "バナナ", "みかん", "りんご"]
target = "りんご"
# リストの中にあるか確かめる
if target in fruits:
print("りんごはリストの中にあります。")
# 何番目にあるかを調べる
number = fruits.index(target)
print(f"最初に見つかった場所は{number}番目です。")
else:
print("りんごはリストにありません。")
リストの中に同じ名前が複数あっても、index()は一番はじめに見つかった場所を教えてくれます。もし全ての場所を調べたいときは、繰り返し処理を使う方法もあります。このように、小さなしくみを組み合わせることで、より便利なプログラムへステップアップできます。
in演算子は文字列でも使える
リストだけでなく、文字列の検索にも使えることを忘れずに覚えておくと便利です。
message = "こんにちはPython"
if "Python" in message:
print("文章の中にPythonがあります")
このように、文章の中から単語を探したり、特定のことばが含まれているかチェックしたりもできます。使い方はとてもシンプルなので、プログラミングに慣れていない方でもすぐに応用できます。
リスト検索のコツ
「検索したい値が本当に入っているかどうか」という視点を持つと、プログラムのトラブルを事前に防ぎやすくなります。特に「indexメソッド」は見つからないとエラーになるため、「in演算子」と一緒に使うと安心です。 日常でも、忘れ物がないか確認してから家を出るように、プログラムでも「存在を確認してから使う」習慣をつけると、丁寧で読みやすいコードが書けます。
先生と生徒の振り返り会話
生徒
「リストの中から値を探すときは、まずinであるかどうか確かめて、あったらindexで場所を調べるという流れなんですね。思っていたより簡単でした。」
先生
「そうですね。とても基本的ですが、多くのプログラムで使われる大切な考え方です。買い物メモでも、欲しい食べ物が書いてあるか確認して、どこに書かれているか目で探しますよね。それを機械的に行うのがプログラミングです。」
生徒
「文字列にもinが使えるというのは意外でした。文章の中に特定の単語があるか調べたりできるのは便利ですね。」
先生
「そのとおりです。たとえばゲームのメッセージやユーザーの入力内容を確認したり、検索機能を作ったりするときにも役に立ちます。Pythonでは扱い方がやさしいので、ぜひいろいろ試してみてください。」
生徒
「今日の内容を使えば、もっと複雑なプログラムにもチャレンジできそうです。」
先生
「はい。まずは小さなコードを動かしながら、ひとつずつ慣れていきましょう。ゆっくりでも確実に身につきますよ。」