Day 145簡易インデックスでキーワード検索を作る
Pythonコード
1words = ['apple', 'banana', 'cherry', 'date', 'elderberry']2index = {}3for i, word in enumerate(words):4 index[word] = i5 6def search(word):7 if word in index:8 return index[word]9 else:10 return -111 12target = input('検索ワードを入力してください: ')13result = search(target)14if result != -1:15 print(f'{target}はリストの{result}番目にあります')16else:17 print(f'{target}は見つかりませんでした')
解説
- 行1〜2: 単語のリストとインデックス用の辞書を作成します。インデックスは、各単語をキーとして、その単語のリスト内の位置を値として保持します。組み込み関数enumerate()は、リストの要素とその位置を返します。
- 行3〜4: enumerate関数を使用して、リスト内の各単語の位置を取得し、インデックスに追加します。ここでは、enumerate()がリストの要素とその位置を同時に取り出す役割を果たしています。
- 行5〜10: 検索関数を定義します。この関数は、指定された単語がインデックスに存在するかどうかを確認し、存在する場合はその位置を返し、存在しない場合は-1を返します。
- 行11〜12: ユーザーから検索ワードを入力してもらいます。input()関数は、ユーザーから入力を受け付ける関数です。
- 行13〜17: 検索関数を呼び出し、結果を表示します。結果が-1でない場合は、単語が見つかったことを表示し、結果が-1の場合は、単語が見つからなかったことを表示します。print()関数は、指定された値を画面に表示する役割を果たしています。
- 行1: 補足: リストは、複数の値を保持できるデータ構造です。
次に試してみよう
- インデックスを作成する際に、大文字と小文字を区別しないようにしてみましょう。
- 検索ワードに部分一致を許容するようにしてみましょう。
- 複数の検索ワードを指定できるようにしてみましょう。