広告スペース(バナー)
🐍Python レッスン
基本文法の基礎8
データ構造とオブジェクト指向8
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 23 / 69

リストの検索(in・次の要素を探す)

このレッスンでは、リストの検索方法としてinとnext()を使い分ける方法を学び、目的に応じたデータの検索ができるようになることを目標にします。「Python リスト 検索」「Python next 使い方」で調べている方向けです。

値 in リストで、その値が含まれているかをTrue/Falseで調べられます。条件に合う最初の要素を探すにはnext()とジェネレータ式を組み合わせます。「リストの中にこの商品はあるか」を調べたいだけならin、「その商品の詳しい情報がほしい」ならnext()、というように目的に応じて使い分けるのが基本です。

サンプルコードでは、"みかん" in fruitsでリストにその値が含まれているかを確認し、next((f for f in fruits if f.startswith("ぶ")), None)で条件に合う最初の要素を探しています。next()の第2引数は「見つからなかった場合のデフォルト値」で、これを指定しないと見つからないときにエラーになってしまいます。

初心者がよくつまずくのが、next()とジェネレータ式の組み合わせという少し複雑な構文です。カッコの中にfor文が書かれた「ジェネレータ式」という書き方に見慣れないうちは、まずリスト内包表記と[0]を組み合わせる書き方から始めてもよいでしょう。

巨大なリストに対して繰り返しinで検索すると遅くなるため、頻繁に検索するデータは集合(set)に変換するのも実務では有効な手段です。IDを指定して該当するデータ1件をリストから探し出す処理は、実際のアプリでも頻繁に登場します。

Python
OUTPUT / 実行結果

💡 初回実行時はPythonエンジンの読み込みに数秒かかります。

🎯
ここまでできればゴール達成!
在庫リストの中から目的の商品があるか調べる、検索機能が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)