カテゴリ: Python 更新日: 2025/11/28

Pythonのラムダ式をsorted関数で使う方法!初心者でもわかるデータの並べ替え

Pythonのラムダ式をソート関数(sorted)で活用する方法
Pythonのラムダ式をソート関数(sorted)で活用する方法

先生と生徒の会話形式で理解しよう

生徒

「Pythonでリストの中身を特定の条件で並べ替えたいんですが、どうやったらいいですか?」

先生

「Pythonのsorted関数を使うと簡単に並べ替えができます。さらに、ラムダ式を使えば、自由に並べ替えの基準を指定できますよ。」

生徒

「ラムダ式って小さな関数のことですよね?それをどうやってsorted関数と一緒に使うんですか?」

先生

「はい、ラムダ式はその場で使う簡単な関数です。sorted関数のkey引数にラムダ式を渡すことで、並べ替えの基準を自由に指定できます。」

生徒

「具体的な例を教えてください!」

1. sorted関数とは?

1. sorted関数とは?
1. sorted関数とは?

Pythonのsorted関数は、リストやタプルなどのデータを昇順(小さい順)に並べ替えて新しいリストを返す関数です。元のデータは変更されません。

たとえば、数字のリストを小さい順に並べ替えるときに使います。

2. ラムダ式とは?

2. ラムダ式とは?
2. ラムダ式とは?

ラムダ式は「小さな匿名関数(名前のない関数)」で、1行で簡単に書ける関数のことです。
例えば、「2つの数字を足す関数」は通常こう書きます。


def add(a, b):
    return a + b

ラムダ式ならこうなります。


lambda a, b: a + b

このように、簡単な処理を手軽に書けるのが特徴です。

3. sorted関数でラムダ式を使う理由

3. sorted関数でラムダ式を使う理由
3. sorted関数でラムダ式を使う理由

sorted関数は、keyという引数に「並べ替えの基準を指定する関数」を渡せます。ラムダ式をkeyに渡すと、リストの各要素から「この部分を基準に並べ替えてね」というルールを簡単に指定できます。

たとえば、辞書のリストを「年齢」や「名前」で並べ替えるときに便利です。

4. 例:数値のリストを絶対値で並べ替える

4. 例:数値のリストを絶対値で並べ替える
4. 例:数値のリストを絶対値で並べ替える

まずは数字のリストを絶対値の小さい順に並べ替える例です。


numbers = [3, -5, 1, -2, 4]

sorted_numbers = sorted(numbers, key=lambda x: abs(x))

print(sorted_numbers)

実行結果はこちらです。


[1, -2, 3, 4, -5]

ここでlambda x: abs(x)は「各要素の絶対値」を基準に並べ替えてね、という意味です。

5. 例:辞書のリストをキーの値で並べ替える

5. 例:辞書のリストをキーの値で並べ替える
5. 例:辞書のリストをキーの値で並べ替える

次は、複数の辞書が入ったリストを「年齢(age)」で並べ替える例です。


people = [
    {"name": "田中", "age": 35},
    {"name": "佐藤", "age": 22},
    {"name": "鈴木", "age": 28},
]

sorted_people = sorted(people, key=lambda person: person["age"])

for p in sorted_people:
    print(p)

実行結果はこちらです。


{'name': '佐藤', 'age': 22}
{'name': '鈴木', 'age': 28}
{'name': '田中', 'age': 35}

lambda person: person["age"]は、「各辞書の'age'の値」を基準に並べ替えてね、という意味になります。

6. 文字列のリストを長さで並べ替える例

6. 文字列のリストを長さで並べ替える例
6. 文字列のリストを長さで並べ替える例

文字列のリストを文字数の短い順に並べ替える例もあります。


words = ["りんご", "バナナ", "みかん", "キウイ"]

sorted_words = sorted(words, key=lambda w: len(w))

print(sorted_words)

実行結果はこちらです。


['キウイ', 'りんご', 'みかん', 'バナナ']

ラムダ式のlambda w: len(w)は「文字列の長さ」を返して並べ替えています。

7. sorted関数の注意点と補足

7. sorted関数の注意点と補足
7. sorted関数の注意点と補足

sortedは元のリストを変更せず、新しい並べ替えたリストを返します。元のリストを並べ替えたい場合は、リストのsort()メソッドを使いますが、こちらもkeyにラムダ式を指定できます。

また、reverse=Trueをつけると降順(大きい順)に並べ替えられます。

8. まとめではないですが最後に

8. まとめではないですが最後に
8. まとめではないですが最後に

Pythonのsorted関数とラムダ式を組み合わせることで、簡単に自由なルールでデータを並べ替えられます。慣れるまでは難しく感じるかもしれませんが、使いこなせるととても便利なので、ぜひ試してみてください。

カテゴリの一覧へ
新着記事
New1
Django
Djangoプロジェクトのディレクトリ構造を完全解説!初心者でも迷わないフォルダの見方
New2
Flask
Flask×Flask-SocketIOでチャットアプリを作る流れを初心者向けにやさしく解説
New3
Flask
Flaskアプリの作り方を基礎から学ぼう!初心者が覚えるべき開発の流れとは?
New4
Flask
Flask-WTFでファイルアップロードフォームを完全ガイド!初心者でもわかる画像やPDFのアップロード方法
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.5
Java&Spring記事人気No5
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.6
Java&Spring記事人気No6
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方
No.7
Java&Spring記事人気No7
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.8
Java&Spring記事人気No8
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説