概要
Pythonで辞書のリストを特定のキーでソートするのは簡単です。sorted()やlist.sort()を使い、lambda関数やoperator.itemgetter()を使って、リストの中にある辞書の特定のキーの値に基づいてソートが可能です。本記事では、それらの方法について詳しく解説します。
sorted()を使った基本的なソート
辞書リストをソートする最も基本的な方法は、sorted()を使い、ソートの基準となるキーを指定することです。
my_list = [{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}]
sorted_list = sorted(my_list, key=lambda x: x['name'])
print(sorted_list)
この例では、nameキーの値に基づいてリストがアルファベット順にソートされます。
operator.itemgetterによるソート
operator.itemgetterを使用すると、lambda関数を使わずにシンプルにソートを行うことができます。
from operator import itemgetter
sorted_list = sorted(my_list, key=itemgetter('name'))
sort()によるリストの直接変更
リストをその場で変更したい場合は、sort()を使用します。
my_list.sort(key=itemgetter('age'))
これにより、リストがageキーに基づいてソートされます。
複数キーによるソート
複数のキーでソートする場合、キーをタプルで返すことができます。
sorted_list = sorted(my_list, key=lambda x: (x['age'], x['name']))
この例では、まずageでソートし、次にnameでソートします。
結論
Pythonでは、sorted()やsort()とlambdaまたはitemgetterを使うことで、辞書のリストを柔軟にソートできます。これらの方法を使いこなせば、複雑なデータ構造も簡単に操作できるようになります。