sortメソッドとは?
sortメソッドは、リストの要素を指定した順序でソートするメソッドです。このメソッドは、元のリストを直接変更し、新しいリストを作成せずに既存のリストをソートします。
デフォルトでは昇順(小さい値から大きい値へ)でソートしますが、reverseパラメータを使用することで降順にもソートできます。keyパラメータを指定することで、独自のソート条件を設定できます。
文字列の場合はアルファベット順、数値の場合は数値順でソートされます。sortメソッドは戻り値としてNoneを返すため、メソッドチェーンでの使用には注意が必要です。データの整理や分析において頻繁に使用されるメソッドです。
【関連】
Pythonをもっと詳しく学ぶならpaizaラーニング
基本構文
sortメソッドの基本的な構文は、list.sort()、list.sort(reverse=True)、list.sort(key=function)という形式です。引数を指定しない場合は昇順でソート、reverseをTrueにすると降順になります。
以下のコード例では、動物の名前と数値のリストをソートする基本的な方法を示しています。
引数を指定しない場合の基本的な使用例です。文字列のリストを昇順(あいうえお順)でソートします。
出力結果:
昇順: ['イヌ', 'ウサギ', 'ネコ', 'ハムスター']
reverse=Trueを指定して降順でソートする例です。数値のリストを大きい順にソートします。
出力結果:
降順: [9, 8, 5, 2, 1]
実用例
ここからは、sortメソッドの実用的な使用例を8つのサンプルコードで詳しく解説します。
各例では、実際のプログラミングで遭遇する可能性が高い状況を想定し、sortメソッドのさまざまな活用方法を紹介します。カスタムソート条件、辞書のソート、日本語文字列の処理など、実践的な技術も含めて学習できます。
これらの例を通じて、sortメソッドの特徴や応用方法を理解し、実際のプログラム開発で効果的に活用できるようになります。
動物名を昇順でソート
動物名のリストを五十音順にソートする最も基本的な使用例です。この例では、動物園の動物リストを管理し、見やすい順序で表示する処理を示しています。
出力結果:
ソート前: ['ゾウ', 'ライオン', 'キリン', 'パンダ', 'サル']
五十音順:['キリン', 'サル', 'ゾウ', 'パンダ', 'ライオン']
逆順:['ライオン', 'パンダ', 'ゾウ', 'サル', 'キリン']
数値を降順でソート
数値のリストを降順でソートする例です。この例では、動物の年齢データを管理し、年齢の高い順にソートする処理を示しています。
出力結果:
年齢データ: [3, 1, 5, 2, 4, 6]
年齢順(降順): [6, 5, 4, 3, 2, 1]
3歳以下: [3, 2, 1]
文字列の長さでソート
文字列の長さを基準にしてソートする例です。この例では、動物名の文字数順にソート、短い名前から長い名前の順に表示する処理を示しています。
出力結果:
元のリスト: ['イヌ', 'ネコ', 'ハムスター', 'ウサギ', 'インコ']
文字数順(短い順): ['イヌ', 'ネコ', 'ウサギ', 'インコ', 'ハムスター']
文字数順(長い順):['ハムスター', 'ウサギ', 'インコ', 'イヌ', 'ネコ']
大文字小文字を無視したソート
英語の動物名で大文字小文字を区別せずにソートする例です。この例では、入力データの大文字小文字が混在している場合の正しいソート方法を示しています。
出力結果:
元のリスト: ['Dog', 'cat', 'Rabbit', 'hamster', 'Bird']
通常のソート: ['Bird', 'Dog', 'Rabbit', 'cat', 'hamster']
大文字小文字無視: ['Bird', 'cat', 'Dog', 'hamster', 'Rabbit']
複数条件でのソート
複数の条件を組み合わせてソートする例です。この例では、動物の種類と年齢の両方を考慮して、優先順位を設定したソート処理を示しています。
出力結果:
元のデータ: [('イヌ', 3), ('ネコ', 2), ('イヌ', 1), ('ウサギ', 2), ('ネコ', 4)]
名前→年齢順: [('イヌ', 1), ('イヌ', 3), ('ウサギ', 2), ('ネコ', 2), ('ネコ', 4)]
辞書のリストをソート
辞書を要素として持つリストを特定のキーでソートする例です。この例では、動物の情報を辞書として管理し、年齢や名前でソートする処理を示しています。
出力結果:
年齢順でソート:
ウサギ: 1歳
ハムスター: 1歳
ネコ: 2歳
イヌ: 3歳
日本語文字列のソート
日本語の文字列を正しくソートする例です。この例では、動物名の日本語文字列を五十音順にソート、読みやすい形で表示する処理を示しています。
出力結果:
元のリスト: ['イヌ', 'ウサギ', 'エミュー', 'オウム', 'カメ']
五十音順: ['イヌ', 'ウサギ', 'エミュー', 'オウム', 'カメ']
長さ→五十音順: ['ウサギ', 'チンチラ', 'ハムスター', 'モルモット']
カスタム関数を使用したソート
独自の関数を定義して複雑なソートを行う例です。この例では、動物の特徴に基づいて優先順位を設定し、カスタム関数を使用したソート処理を示しています。
出力結果:
元のリスト: ['ハムスター', 'イヌ', 'ウサギ', 'ネコ', 'インコ']
優先順位順: ['イヌ', 'ネコ', 'ウサギ', 'ハムスター', 'インコ']
優先順位→名前順: ['イヌ', 'ネコ', 'ウサギ', 'ハムスター', 'インコ']
まとめ
sortメソッドは、リストの要素をさまざまな条件でソートする機能です。基本的な昇順・降順のソートから、カスタム関数を使用した複雑な条件でのソートまで、幅広い用途に対応できます。keyパラメータを活用することで、文字列の長さや辞書の特定キーなど、柔軟なソート条件を設定できます。
データの整理や分析において重要な役割を果たし、適切なソート条件を選択することで、効率的なデータ処理が可能になります。