Day 163重複防止付きの最近見たIDリストを作る
Pythonコード
1seen_ids = set()2recent_ids = []3 4def add_id(new_id):5 global seen_ids, recent_ids6 if new_id not in seen_ids:7 seen_ids.add(new_id)8 recent_ids.append(new_id)9 if len(recent_ids) > 5:10 recent_ids.pop(0)11 12def get_recent_ids():13 return recent_ids14 15while True:16 try:17 new_id = int(input('IDを入力してください (0で終了): '))18 if new_id == 0:19 break20 add_id(new_id)21 print('最近見たID:', get_recent_ids())22 except ValueError:23 print('無効な入力です。数字を入力してください。')
解説
- 行1〜2: seen_idsという名前の集合(set)とrecent_idsという名前のリストを作ります。集合は重複した値を許可しないデータ構造で、リストは順序付きの値の集まりです。set()は集合を作る関数で、[]はリストを作る記法です。
- 行4〜10: add_idという関数を定義します。この関数は、新しいIDを追加します。新しいIDがすでに集合に存在しない場合にのみ、集合とリストに追加します。リストの長さが5を超えた場合、古いIDを削除します。globalは関数内で外部の変数を変更するために使います。
- 行11〜13: get_recent_idsという関数を定義します。この関数は、最近見たIDのリストを返します。returnは関数の結果を返す関数です。
- 行15〜23: 無限ループで、ユーザーからIDの入力を求めます。入力が0の場合、ループを終了します。入力したIDをadd_id関数に渡し、最近見たIDのリストを表示します。入力が数字でない場合、エラーを表示します。input()はユーザーから入力を求める関数で、int()は入力を整数に変換する関数です。
- 行9: 補足: len() は要素数(長さ)を返す関数です。pop()はリストから要素を削除する関数です。
- 行21: 補足: print() は画面に文字や値を表示する関数です。
次に試してみよう
- 入力したIDを保存するために、ファイルに書き込む機能を追加してみましょう。
- 最近見たIDのリストを、古いものから新しいものの順に表示するように変更してみましょう。
- IDの入力を終了するために、別の方法(例: 'quit'と入力する)を追加してみましょう。