【初心者向け】Pythonのsorted()関数の使い方を徹底解説
はじめに
このチュートリアルでは、Pythonのsorted()関数について詳しく解説します。
sorted()関数は、リストやタプルなどのイテラブル(反復可能オブジェクト)を昇順または降順にソートするための組み込み関数です。さらにkey引数を活用すれば、辞書のリストを任意のキーや値に基づいて並べ替えることも可能になります。
なお、sorted()関数はsortメソッドと異なり、元のデータを直接変更しない「非破壊的(not in-place)」な関数です。ソート結果は常に新しいリストとして返される点に注意しましょう。
デフォルトのsorted():昇順ソート
sorted()関数は、特に指定がない場合、イテラブルを昇順(小さい順)にソートします。以下の例を見てみましょう。
コード例
# リストの初期化 numbers = [4, 3, 5, 1, 2] # 数値を昇順にソート sorted_numbers = sorted(numbers) # 結果を出力 print(sorted_numbers)
実行結果
上記のコードを実行すると、次の出力が得られます。
[1, 2, 3, 4, 5]
降順ソート:reverse引数
reverse引数にTrueを指定すると、イテラブルを降順(大きい順)にソートできます。
コード例
# リストの初期化 numbers = [4, 3, 5, 1, 2] # 数値を降順にソート sorted_numbers = sorted(numbers, reverse=True) # 結果を出力 print(sorted_numbers)
実行結果
上記のコードを実行すると、次の出力が得られます。
[5, 4, 3, 2, 1]
key引数によるカスタムソート
sorted()関数は、keyというオプション引数も受け付けます。key引数には、「ソートの基準となる値」を返す関数を指定します。これにより、複雑なデータ構造でも柔軟に並べ替えができるようになります。
例えば、辞書のリストを特定の値に基づいてソートしたいケースを考えてみましょう。この場合、key引数にラムダ式などを渡し、ソートの基準となる値を返すようにします。
コード例
# 辞書のリストを初期化
numbers = [{'a': 5}, {'b': 1, 'a': 1}, {'c': 3, 'a': 3}, {'d': 4, 'a': 4}, {'e': 2, 'a': 2}]
# キー'a'の値に基づいて辞書のリストをソート
sorted_dictionaries = sorted(numbers, key=lambda dictionary: dictionary['a'])
# 結果を出力
print(sorted_dictionaries)実行結果
上記のコードを実行すると、キー'a'の値(1〜5)の順に辞書が並べ替えられます。
[{'b': 1, 'a': 1}, {'e': 2, 'a': 2}, {'c': 3, 'a': 3}, {'d': 4, 'a': 4}, {'a': 5}]まとめ
このチュートリアルでは、Pythonのsorted()関数の基本的な使い方から、reverse引数やkey引数を使った応用的なソート方法までを学びました。sorted()関数を使いこなせば、リストや辞書などさまざまなデータを自由自在に並べ替えられるようになります。ぜひ実際のコードで試してみてください。
本チュートリアルについてご不明な点がありましたら、コメント欄でお気軽にお尋ねください。
-
Pythonのissubset()関数とは?部分集合の判定方法を実例付きで解説
本記事では、Python標準ライブラリに用意されているissubset()関数の仕組みと使い方について詳しく解説します。 issubset()メソッドは、あるセット(集合)のすべての要素が、引数として渡した別のセットにも含まれている場合にブール値のTrueを返し、1つでも含まれていない要素があればFalseを返します。 下の図では、BはAの部分集合です。もしAとBが同一のセットであれば、両者は互いに部分集合の関係にあるといえます。つまり、両方のセットがまったく同じ要素を持っているということを意味します。 構文 <set 1>.issubset(<set 2>) 戻り値
-
Pythonのintersection()関数とは?集合の共通要素(積集合)を求める方法
この記事では、Pythonのセット(集合)に対して実行できるintersection()関数について詳しく解説します。数学における「積集合(インターセクション)」とは、2つの集合から共通する要素を見つけ出すことを指します。構文<セット名>.intersection(<セットa1>, <セットa2>, …)戻り値引数として渡されたすべての集合に共通する要素(積集合)が、新しいセットとして返されます。使用例set_1 = {t,u,t,o,r,i,a,l} set_2 = {p,o,i,n,t} set_3 = {t,u,t} # 2つの集合の積集合 print