\

Pythonにはリストをソートするための組み込み関数があります。それはlist.sort()sorted()です。

list.sort()とsorted()の違い

list.sort()はリストをインプレース(元の場所)で変更します。一方、sorted()は新しいソートされたリストを作成します。

a = [5, 2, 3, 1, 4]
a.sort()
print(a)  # [1, 2, 3, 4, 5]

keyパラメータ

list.sort()sorted()には、比較を行う前に各リスト要素に対して呼び出される関数を指定するためのkeyパラメータがあります。

student_tuples = [
    ('john', 'A', 15),
    ('jane', 'B', 12),
    ('dave', 'B', 10),
]
sorted(student_tuples, key=lambda student: student[2])  # 年齢でソート
# [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

operatorモジュール

Pythonは、アクセサ関数をより簡単かつ高速にするための便利な関数を提供しています。operatorモジュールにはitemgetter(), attrgetter(), methodcaller()関数があります。

from operator import itemgetter, attrgetter
sorted(student_tuples, key=itemgetter(2))
# [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

これらの情報を活用して、Pythonでリストを効率的にソートすることができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です