概要

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を使うことで、辞書のリストを柔軟にソートできます。これらの方法を使いこなせば、複雑なデータ構造も簡単に操作できるようになります。