Pythonでsorted関数を使ってリストをソートする方法

この記事では、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`関数は非常に柔軟性が高く、多くのオプションが用意されています。この記事で紹介したテクニックを活用して、リストを効率よくソートしてみてください。

コメント

コメントする

目次