Pythonにはリストをソートするための組み込み関数があります。list.sort()
メソッドとsorted()
関数です。
list.sort()
メソッドはリストをインプレース(元の場所)で変更します。一方、sorted()
関数はイテラブルから新しいソートされたリストを作成します。
# 昇順にソートする基本的な方法
a = [5, 2, 3, 1, 4]
a.sort()
print(a) # Output: [1, 2, 3, 4, 5]
list.sort()
メソッドとsorted()
関数の両方には、比較を行う前に各リスト要素に対して呼び出される関数を指定するためのkey
パラメータがあります。
# 文字列のケースを無視したソート
sorted("This is a test string from Andrew".split(), key=str.casefold)
# Output: ['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']
key
パラメータの値は、ソート目的で使用するキーを返す関数(または他の呼び出し可能なもの)であるべきです。
# 年齢でソートする例
student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
sorted(student_tuples, key=lambda student: student[2]) # sort by age
# Output: [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
このテクニックは、オブジェクトのインデックスの一部をキーとして使用して複雑なオブジェクトをソートする一般的なパターンです。
以上がPythonのリストを関数を使ってソートする方法についての基本的な説明です。これらの知識を活用して、Pythonプログラミングの効率を向上させてください。