記事の内容
この記事では、配列の中にある辞書型を複数のkeyでソートする方法を説明します。
なお、このコードはPythonの3系で書かれています。
複数のkeyでソート
この配列の中身を以下のように並び替えます。
- heightが小さい順
- heightが同じ場合は、年齢が大きい順
複数keyの場合は、タプルを使って指定します。
そして、降順で並べたい時には「-」を前方につけます。
# coding: utf-8 | |
dict_people = [{ 'name': 'Taro_1', 'age': 20, 'height': 180, 'weight': 60, 'country': 'Japan' }, | |
{ 'name': 'Taro_2', 'age': 30, 'height': 170, 'weight': 65 }, | |
{ 'name': 'Taro_3', 'age': 40, 'height': 160, 'weight': 70, 'country': 'Taiwan'}, | |
{ 'name': 'Taro_4', 'age': 20, 'height': 160, 'weight': 75, 'country': 'Japan' }, | |
{ 'name': 'Taro_5', 'age': 60, 'height': 160, 'weight': 80, 'country': 'Japan' }, | |
{ 'name': 'Taro_6', 'age': 50, 'height': 150, 'weight': 85, 'country': 'Japan' } | |
] | |
sorted_list = sorted(dict_people, key=lambda person: (person['height'], -person['age'])) | |
print(sorted_list) |