この記事では、Pythonの`sorted`関数を使ったリストのソート(並び替え)について解説します。具体的なコード例とその解説、応用例を含めています。この記事を通じて、リストを効率よくソートするテクニックを身につけましょう。
目次
sorted関数の基本
`sorted`関数はPythonで用意されている組み込み関数の1つです。この関数を使えば、リスト内の要素を簡単にソート(並び替え)することができます。
# リストを定義
sample_list = [3, 1, 4, 1, 5, 9, 2, 6, 5]
# sorted関数でソート
sorted_list = sorted(sample_list)
# 結果を出力
print(sorted_list) # Output: [1, 1, 2, 3, 4, 5, 5, 6, 9]
このように、`sorted`関数はリストを引数として取り、ソートされた新しいリストを返します。元のリストは変更されません。
sorted関数のオプション
`sorted`関数はいくつかのオプションを持っており、これを利用することでさまざまなソートが可能です。
逆順でソート
# 逆順でソート
reverse_sorted_list = sorted(sample_list, reverse=True)
# 結果を出力
print(reverse_sorted_list) # Output: [9, 6, 5, 5, 4, 3, 2, 1, 1]
独自のソート順
key引数を使用すると、独自のソート順を指定できます。例えば、文字列の長さでソートするケースを見てみましょう。
# 文字列のリスト
str_list = ['apple', 'banana', 'cherry']
# 文字列の長さでソート
sorted_str_list = sorted(str_list, key=len)
# 結果を出力
print(sorted_str_list) # Output: ['apple', 'cherry', 'banana']
応用例
リスト内の辞書をソート
リスト内に辞書が含まれている場合、`key`引数を使って特定のキーでソートできます。
# 辞書のリスト
dict_list = [{'name': 'Alice', 'age': 30}, {'name': 'Bob', 'age': 25}, {'name': 'Charlie', 'age': 35}]
# ageでソート
sorted_dict_list = sorted(dict_list, key=lambda x: x['age'])
# 結果を出力
print(sorted_dict_list)
複数のキーでソート
複数のキーを使用してソートする方法です。
# ageとnameでソート
sorted_multi_keys = sorted(dict_list, key=lambda x: (x['age'], x['name']))
# 結果を出力
print(sorted_multi_keys)
外部ライブラリと組み合わせ
`sorted`関数はNumPyやPandasといった外部ライブラリとも組み合わせて使えます。
# NumPy配列をソート
import numpy as np
arr = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5])
sorted_arr = np.array(sorted(arr))
print(sorted_arr)
まとめ
Pythonの`sorted`関数は非常に柔軟性が高く、多くのオプションが用意されています。この記事で紹介したテクニックを活用して、リストを効率よくソートしてみてください。
コメント