Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでタプルのリストをカスタムソートする方法をわかりやすく解説

タプルのリストを独自の基準で並べ替えたい場合には、Pythonの「sort」メソッドを活用すると便利です。

「sort」メソッドは、イテラブル(反復可能オブジェクト)の要素を昇順または降順といった特定の順序で整列させます。また、元のリスト自体を直接書き換える「in-place(インプレース)」方式でソートを行うのが特徴です。

リストは、整数や浮動小数点数、文字列など、さまざまなデータ型の値を混在させて格納できる柔軟なデータ構造です。

タプルのリストとは、複数のタプルをひとつのリストの中にまとめたものを指します。

以下に具体的な使用例を示します。

実装例

def tuple_sort(my_tup):
    my_tup.sort(key = lambda x: x[1])
    return my_tup

my_tuple = [('Will', 100), ('John', 67), ('Harold', 86), ('Jane', 35)]

print("The tuple is ")
print(my_tuple)
print("The sorted list of tuple is :")
print(tuple_sort(my_tuple))

出力結果

The tuple is
[('Will', 100), ('John', 67), ('Harold', 86), ('Jane', 35)]
The sorted list of tuple is :
[('Jane', 35), ('John', 67), ('Harold', 86), ('Will', 100)]

コードの解説

  • まず「tuple_sort」という名前の関数を定義し、引数としてタプルのリストを受け取ります。
  • 関数内部では「sort」メソッドを使用し、lambda関数をkeyとして指定することでタプルを並べ替えています。
  • lambda関数は記述できる式が1つという制限がありますが、引数はいくつでも指定可能です。
  • 指定した式を評価し、その結果を返す働きを持ちます。
  • 続いてタプルのリストを定義し、コンソールに表示します。
  • 定義した関数に対象のリストを渡して呼び出します。
  • 戻り値は変数に代入され、最後にコンソールへ出力されます。

ポイント:key引数の役割

「sort」メソッドの「key」引数には、比較に使う値を各要素から取り出すための関数を指定します。上記の例では「lambda x: x[1]」により、各タプルの2番目の要素(数値)を基準に昇順ソートが行われています。降順で並べたい場合は、「reverse=True」オプションを追加するだけで対応できます。

なお、元のリストを変更せずに、新しくソート済みのリストを作成したい場合は、組み込み関数「sorted()」を利用するのがおすすめです。

  1. なぜPythonはリスト内のリストではなく「リスト内のタプル」を返すのか?その理由を解説

    Pythonでデータベースを操作したり、ライブラリからデータを取得したりすると、「リストの中にタプルが入った構造」が返ってくることがよくあります。「なぜ普通のリストではなく、わざわざタプルなのか?」と疑問に思ったことはありませんか?この記事では、その理由を分かりやすく解説します。 1. 返却されたデータは「変更しない」ことが前提だから 最大の理由は、Pythonが返却するデータはミュータブル(変更可能)にしないことを期待している点にあります。タプルはイミュータブル(不変)なデータ型であり、一度作成すると内容を書き換えることができません。 関数やライブラリがデータを返すとき、それはあくまで「読

  2. Pythonタプル(tuple)入門:作成・操作・削除の基本をコード例で解説

    Pythonにおけるタプル(tuple)は、順序付け(ordered)かつ変更不可(immutable)という特徴を持つコレクションです。変更不可であるため、一度作成したタプルに要素を追加したり削除したりすることはできません。 タプルは丸括弧 () と、最低1つのカンマ , を使って作成します。 また、タプルはリストと同じようにインデックス指定やスライシングが可能ですが、スライスの結果もタプルとして返される点に注意しましょう。 タプルの作り方 colorsTuple = (red, green, blue) print(colorsTuple) 実行結果: (red, green, blue