Day 66キー関数を使ったソート
Pythonコード
1students = [{'name': '田中', 'age': 20}, {'name': '佐藤', 'age': 19}, {'name': '鈴木', 'age': 21}]2students.sort(key=lambda x: x['age'])3print(students)4 5def get_number_from_user(prompt):6 while True:7 try:8 return int(input(prompt))9 except ValueError:10 print('数値を入力してください。')11 12age = get_number_from_user('年齢を入力してください: ')13print(f'あなたの年齢は{age}です。')
解説
- 行1〜3: リストの中に辞書(key-value形式のデータ)を含めています。sort()関数を使って、リスト内の辞書を年齢('age')でソートしています。sort()関数は、リストをその場で並べ替えます。lambda関数は、関数を簡単に定義する方法です。この場合は、辞書から'age'の値を取り出してソートの基準にしています。print()関数は、結果を画面に表示するために使用されています。
- 行5〜10: ユーザーから数値を入力してもらう関数get_number_from_user()を定義しています。input()関数で入力を受け付け、int()関数で数値に変換します。ただし、入力が数値でない場合はValueErrorが発生するため、try/exceptでエラーを捕まえています。入力が数値でない場合は、メッセージを表示して再入力を求めます。
- 行12〜13: ユーザーから年齢を入力してもらい、その値を表示しています。
次に試してみよう
- リストの中にリストを含めて、2次元リストを作成してみましょう。
- ソートの基準を変更して、名前でソートしてみましょう。
- ユーザーから名前と年齢を入力してもらい、辞書を作成してリストに追加してみましょう。