• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
  • Skip to footer

AI活用エンジニアへの道

生成AI時代のエンジニアの生き方を考えるメディア(作成途中)

  • コラム
  • 生成AI
  • プログラミング
    • Python入門
    • Flask入門
    • Django入門
  • プロフィール
Home / プログラミング / Python / Pythonの高階関数とlambda式の使い方をまとめました

Pythonの高階関数とlambda式の使い方をまとめました

1 高階関数の使い方
2 lambda式の使い方
3 map関数、sort関数と併用してlambda式を利用する
4 関連記事

高階関数の使い方

pythonでは、関数もオブジェクトの1つにであるため変数として扱うこともできる。
また、関数を他の関数の引数として渡したり、返り値として扱うこともできる。

関数を引数にしたり、返り値にする関数を高階関数と言う。

  • 関数を変数のように扱う例
def print_hello():
    print("hello")

var = print_hello # 変数varに関数をオブジェクトとして代入
var() # このように変数に()を付けると関数が呼び出され、「hello」と表示される

var2 = ['apple', 'orange', print_hello] # 配列の3番目(インデックスだと2)にprint_helloをオブジェクトとして、入れる
var2[2]() #↑配列のインデックス2のprint_helloを呼び出すと、「hello」と表示される

  • 引数、返り値に関数を利用する方法
def print_world(msg):
    print("{} world".format(msg))

def print_konnichiwa():
    print("こんにちは")

def print_hello(func):
    func("hello") #引数funcを関数のように利用
    return print_konnichiwa # 関数print_konnichiwaを返す

var = print_world # 変数varに関数print_worldを代入

a = print_hello(var)
# 関数print_helloの引数をprint_worldにして、呼び出す
# func("hello")がprint_world("hello")になり、関数内で「"hello world"」と表示
# aに、関数print_konnichiwaを格納

a() # 関数print_konnichiwa()が実行され、"こんにちは"と表示

lambda式の使い方

pythonので1行で終わるような関数を定義する場合に、lambda式を用いることが多い。
lambda式は以下のように記述する。

lambda 引数: 返り値

  • lambdaの記述方法
a = lambda x: x * x # aに無名関数のオブジェクトを代入(引数xで返り値x*xの関数)

res = a(12) # 引数を12として、無名関数を実行。戻り値は、x * xの144

print(res) # 144

b = lambda x, y, z=5: x * y *z # lambda式で、複数の引数を取り、一部の引数にデフォルト値を入れる

print(b(3,4)) # x=3,y=4として関数が実行され、60と表示

  • lambdaで条件式を記述する方法
c = lambda x, y: y if x < y else x
# x, yを引数として、x < yのときy、それ以外では、xを返す

map関数、sort関数と併用してlambda式を利用する

  • map, sortとlambdaを利用する方法
a = [1, 2, 3, 4]

b = map(lambda x: x * x, a) # bには、aをa*aした値、(1,4,9,16)のMapObjectが格納される

c = [("apple", "200yen"), ("grape", "400yen"), ("banana", "100yen"), ("lemon", "50yen")]

c.sort(key=lambda x: x[1]) # cを2番目の値をキーにしてソート

c.sort(key=lambda x: x[0][0] + x[1][0]) # cの1番目の1番目の値+2番目の1番目の値a2,g4,b1,l5で、sort

関連記事

Pythonの型ヒント:コレクション型とOptional型の使い方
Pythonの型ヒント:コレクション型とOptional型の…
Python型ヒントについて、変数と関数の引数と戻り値に付与する基本的な書き方について
Python型ヒントについて、変数と関数の引数と戻り値に付与…
【まとめ】よく使うLinuxのショートカット11選
【まとめ】よく使うLinuxのショートカット11選
覚えておくべきLinuxコマンド50選
覚えておくべきLinuxコマンド50選
FlaskでFormを用いてPOSTリクエストを行い、送信された値を取得する
FlaskでFormを用いてPOSTリクエストを行い、送信さ…
Flaskでabortを用いてHTTPException例外を強制的に発生させる
Flaskでabortを用いてHTTPException例外…

Primary Sidebar

人気記事

  • 1
    ITエンジニアとしてスキルを高めるためのUdemy講…
  • 2
    PyCharm,IntelliJのおすすめプラグイン一覧
  • no image 3
    Python未経験だが、フリーランスの案件に採用さ…
  • 4
    アメリカのシリコンバレーでプログラミングを無…

特集記事

  • 1
    Cursorの使用のポイントとコツ(コード補完、イ…
  • 2
    ITエンジニアとしてスキルを高めるためのUdemy講…

目次

1 高階関数の使い方
2 lambda式の使い方
3 map関数、sort関数と併用してlambda式を利用する
4 関連記事
StartCode ロゴ
AI時代のエンジニアを最速で育てる
法人向けIT研修で即戦力を育成しています。詳しくはお問い合わせください。
▶ 詳細はこちら
Python講座
【Udemy】Python入門講座(0からPythonの基礎を体系的に学んで、生成AIでバイブコーディング)
受講生3000人ほどの人気講座。<strong>Pythonの基礎から生成AI活用</strong>...
詳細 ▶

Footer

利用規約