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