Pythonでリストの要素を検索・取得する方法を解説!初心者向けにindexメソッドとin演算子の使い方をやさしく説明
生徒
「Pythonでリストの中に特定のデータがあるかどうか調べる方法ってありますか?」
先生
「ありますよ。in演算子を使えば、リストにデータが含まれているかを簡単に調べられますし、index()メソッドを使えば、その位置(インデックス)も分かります。」
生徒
「位置も調べられるんですか?便利そうですね!」
先生
「それでは、inとindex()の基本的な使い方を一緒に見ていきましょう!」
1. リストに要素があるか確認するin演算子
Pythonでは、リストの中に特定の値があるかどうかを調べたいとき、in演算子が使えます。
たとえば、「りんご」がリストにあるか調べるには次のように書きます。
fruits = ["りんご", "バナナ", "みかん"]
if "りんご" in fruits:
print("りんごはリストにあります。")
りんごはリストにあります。
inは、「〜の中にあるか?」という意味で、とてもわかりやすい記述です。
逆に「〜の中にないか?」を調べたいときはnot inを使います。
if "ぶどう" not in fruits:
print("ぶどうはリストにありません。")
ぶどうはリストにありません。
2. index()メソッドで位置を取得する
index()メソッドを使うと、リストの中で指定したデータがどの位置にあるかを調べることができます。
たとえば、「バナナ」の位置を調べる場合は次のように書きます。
fruits = ["りんご", "バナナ", "みかん"]
position = fruits.index("バナナ")
print("バナナの位置は", position)
バナナの位置は 1
Pythonのリストは、0から数えるというルールなので、「バナナ」は2番目に見えても、位置は1になります。
3. index()を使うときの注意点
index()は、リストにその値が存在しないとエラーになります。事前にinで調べてから使うと安全です。
fruits = ["りんご", "バナナ", "みかん"]
if "ぶどう" in fruits:
print(fruits.index("ぶどう"))
else:
print("ぶどうはリストに見つかりませんでした。")
ぶどうはリストに見つかりませんでした。
こうすることで、プログラムが途中で止まらず、ユーザーに優しい表示ができます。
4. 同じ値が複数あった場合は?
index()を使うと、リストの中に同じ値が複数あっても、最初に見つかった場所だけが返されます。
numbers = [10, 20, 10, 30, 10]
print(numbers.index(10))
0
このように、10が3つあっても、一番最初に見つかった位置「0」が返ってきます。
5. inを使って検索結果を使い分けよう
in演算子は、検索のためだけでなく、条件によって処理を変える場合にも使えます。
items = ["ペン", "消しゴム", "定規"]
item = "鉛筆"
if item in items:
print(item + "は文房具リストに含まれています。")
else:
print(item + "は文房具リストにありません。")
鉛筆は文房具リストにありません。
ユーザーの入力や選択肢に応じて分岐したいときに、とても便利な機能です。
6. inとindexを組み合わせて使う例
最後に、inとindex()を組み合わせて、リストの中にあるデータの位置を調べる実践例を紹介します。
names = ["田中", "佐藤", "鈴木", "高橋"]
search = "鈴木"
if search in names:
print(search + "さんはリストにいて、位置は", names.index(search), "です。")
else:
print(search + "さんはリストにいません。")
鈴木さんはリストにいて、位置は 2 です。
このようにすれば、エラーも出さず、検索と位置の取得を同時に行うことができます。