Python でセットを並べ替える

Hemank Mehtani 2023年1月30日
  1. Python で sorted() 関数を使用してセットを並べ替える
  2. Python で sort() メソッドを使用してセットを並べ替える
Python でセットを並べ替える

セットは、重複する要素がない、順序付けもインデックス付けもされていないコレクションです。セットは、Python で使用できる 4つの組み込みデータ型の 1つであり、中括弧を使用して記述されています。

セットが順序付けされていない場合、セットの値を並べ替えることはできません。ただし、セットを出力すると、並べ替えて表示されます。

以下のコードを参照してください。

s = {5, 2, 7, 1, 8}
print(s)

出力:

{1, 2, 5, 7, 8}

必要に応じて、さまざまな関数を使用してセットを並べ替え、リストを返すことができます。これらについては、以下で説明します。

Python で sorted() 関数を使用してセットを並べ替える

sorted() 関数は Python の組み込み関数であり、ソートされたシーケンス(list、tuple、string)またはソートされた collection(sets、dictionary)をリストの形式で返します。sorted() 関数は、新しいソートされた出力を提供するため、元の反復可能なシーケンスには影響しません。

例えば、

s = {5, 2, 7, 1, 8}
print(sorted(s))

出力:

[1, 2, 5, 7, 8]

sorted() 関数はセットではなくリストを返すことに注意してください。set() 関数を使用して、このリストを再びセットに変換できます。ただし、セットは順序付けられていないため、これは冗長です。

Python で sort() メソッドを使用してセットを並べ替える

sort() メソッドは、リストで指定された要素を昇順または降順で並べ替えるために使用されます。これは破壊的なプロセスです。つまり、sorted() 関数とは異なり、sort() メソッドは元のリスト自体の要素を並べ替えます。

この機能をセットで使用することはできません。ただし、セットをリストで囲むことができ、それによってそれらがソートされます。

例えば、

s = [{5, 2, 7, 1, 8}]
s.sort()
print(s)

出力:

[{1, 2, 5, 7, 8}]

sort() 関数もリストの最終出力を返すことに注意してください。sort()関数でも同様のアプローチを取ることができます。

一方、list() 関数を使用してセットをリストに変換し、このメソッドで並べ替えることができます。

以下のコードを参照してください。

s = {5, 2, 7, 1, 8}
l = list(s)
l.sort()
print(l)

出力:

[1, 2, 5, 7, 8]