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

Python sort()メソッド完全ガイド:リストの並べ替えをマスターする

Pythonのsort()メソッドは、リストを値に基づいて昇順に並べ替えます。reverseパラメータを使用すれば、降順での並べ替えも可能です。さらに、sort()は関数を受け取ることができ、独自のカスタム基準で並べ替えを行うこともできます。

プログラミングをしていると、アイテムやデータを並べ替える必要に迫られる場面は必ず訪れます。ユーザー名を逆アルファベット順にソートしたり、メール受信者の一覧をアルファベット順に取得したりと、ソートはさまざまな場面で重要な役割を果たします。

Pythonには、開発者がリストを並べ替えるための組み込み関数sort()が用意されています。sort()関数は多彩な機能を備えており、プログラムに最適な形でPythonのリストを自由に整理できます。

このチュートリアルでは、Pythonにおけるソートの基本を解説し、sort()関数の使い方を詳しく見ていきます。

Pythonでリストをソートする基本

sort()関数は、リストを昇順に並べ替えます。追加のパラメータを指定することで、カスタムソートや降順ソートを行うことも可能です。これらのパラメータはすべて省略可能です。

まずは、sort()メソッドの構文を確認しましょう。

sort(reverse=True, key=function)

sort()メソッドは、次の2つのオプション引数を受け取ります。

  • reverse:Trueを指定すると、リストが降順に並べ替えられます。
  • key:リストの並べ替えに使用される関数を指定します。

昇順でリストをソートする

以下では、数値のリストを含む配列を定義しています。この数値は特定の順序になっていません。この配列を並べ替えるには、sort()関数を使用します。

data = [9, 12, 8, 4, 6]
data.sort()

print(data)

このコードを実行すると、次の出力が得られます。

[4, 6, 8, 9, 12]

コードの1行目では、ランダムな順序の数値リストを宣言しています。

次に、引数なしでsort()関数を呼び出すことで、元のリストが昇順に並べ替えられます。最後の行で、並べ替えられたデータが出力されます。

なお、sort()関数は元の配列そのものを変更するという点に注意してください。

降順でリストをソートする

reverse引数をTrueに設定すると、リストは降順に並べ替えられます。デフォルトではreverseFalseに設定されており、この場合、最終的なリストは昇順になります。

以下は学生の名前のリストです。このリストを逆アルファベット順に並べ替えてみましょう。そのために、reverse引数を指定してsort()メソッドを使用します。

students = ['Hannah', 'Arnold', 'Paul', 'Chris', 'Kathy']
students.sort(reverse=True)

print(students)

このコードは、学生の名前を逆アルファベット順に出力します。

['Paul', 'Kathy', 'Hannah', 'Chris', 'Arnold']

keyパラメータを使ったカスタムソート

独自の基準でリストを並べ替えることもできます。例えば、配列内の文字列の長さに基づいて配列をソートすることが可能です。

文字列の長さでソートする

keyパラメータを使用すると、独自のカスタムソートを定義できます。以下は、key引数を使って、リスト内の文字列の長さに基づいて並べ替える例です。

students = ['Sophie', 'Alexander', 'Paul', 'Chris', 'Ann']
sortedStudents = sorted(students, key=len)
print(sortedStudents)

このコードは次の出力を返します。

['Ann', 'Paul', 'Chris', 'Sophie', 'Alexander']

ここでは、文字列の長さに基づいてリストが並べ替えられています。3文字の名前であるAnnが最初に来て、9文字の名前であるAlexanderが最後に配置されています。

上記の例では、オブジェクトの長さを返すPythonの組み込み関数であるlen()をソートの基準として指定しています。配列内の各文字列がlen()に渡され、その結果に基づいて最終的なリストが並べ替えられます。

同様に、str.upperを使用して各文字列の大文字に基づくアルファベット順でソートしたり、まったく別のPython関数を使ってリストを並べ替えたりすることもできます。

JSONの内容でソートする

keyパラメータには、ソートの実行方法を定義した独自の関数を指定することもできます。以下は、JSON配列を特定の値で並べ替える例です。ここでは、学生のテストスコアを基準にソートします。

def sortFunction(value):
	return value["test_score"]

students = [
{
		"name": "Sophie",
		"test_score": 75
},
{
		"name": "Ann",
		"test_score": 67
},
{
		"name": "Chris",
		"test_score": 73
}

]

sortedStudents = sorted(students, key=sortFunction)
print(sortedStudents)

このコードは次の出力を返します。

[{'name': 'Ann', 'test_score': 67}, {'name': 'Chris', 'test_score': 73}, {'name': 'Sophie', 'test_score': 75}]

このコードにより、学生がテストスコアの昇順に並べ替えられました。

まず、プログラムはsortFunctionという関数を定義しています。この関数は呼び出されると、test_scoreの値に基づいてJSON配列を並べ替えます。次に、学生の名前とテストスコアを含むstudentsというJSON配列を宣言しています。

続いて、カスタムソート関数としてsortFunctionをkeyに指定して学生を並べ替えます。最後の行で、並べ替えられたリストが出力されます。

まとめ

このチュートリアルでは、Pythonのsort()関数を使用してリストを並べ替える方法を解説しました。さまざまなデータ型に対するsort()の使い方や、reverseパラメータによるリストの順序の反転、さらにkeyを使用したより細かい制御のソート方法についても取り上げました。

Pythonの学習をさらに進めたい方は、Pythonの効果的な学習方法をまとめた完全ガイドもぜひ参考にしてください。

  1. Pythonでリスト内の要素を検索する方法:初心者向け完全ガイド

    Pythonのリストから特定の要素を見つけるにはどうすればよいのでしょうか?これはPythonプログラマーなら誰もが一度は直面する疑問です。幸い、Pythonにはin演算子や線形探索など、リスト内の要素を検索するためのさまざまな手法が用意されています。本記事では、リストから要素を検索する4つの方法を紹介し、それぞれの動作を実例とともにわかりやすく解説します。1. 「in」演算子を使った検索Pythonにはinという特別な演算子があります。この演算子は、ある値がリストに含まれているかどうかをチェックするもので、「メンバーシップ演算子」と呼ばれることもあります。例として、靴店を経営していて、特定の

  2. PythonでHello Worldを表示する方法:初心者向けステップバイステップガイド

    Pythonの「Hello World」プログラムは、多くのプログラマーが最初に書くプログラムです。print文を使って文字列をコンソールに表示するだけのシンプルなもので、コードは print(Hello World) の1行のみです。 Pythonが正しくインストールされているかを確認するには、まず「Hello World」を書いてみるのがおすすめです。作成方法は主に2つあります。ターミナル(コマンドライン)を使う方法と、Visual Studio CodeやVimなどのコードエディタを使う方法です。 始める前に、お使いのマシンにPython 3がインストールされていることを確認しておき