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

Pythonで関数を引数として渡す方法をわかりやすく解説

Pythonでは、関数もオブジェクトの一つとして扱われるため、他の関数の引数として渡すことができます。この仕組みを活用すると、柔軟で再利用性の高いコードを書くことができます。

map()関数を使った例

Pythonが標準で提供している代表的な例が、第一引数に関数を受け取る map() 関数です。

map(function, iterable, ...) — iterable(イテラブル)の各要素に対してfunctionを適用し、その結果を返します。

もちろん、独自に定義したカスタム関数でも、引数として関数を受け取るように実装できます。

自作関数sqr(x)を引数として渡す

ここでは、リストの各要素を2乗する関数 sqr(x) を定義し、それを map() の引数として渡してみましょう。

コード例

s = [1, 3, 5, 7, 9]

def sqr(x):
    return x ** 2

result = list(map(sqr, s))
print(result)

出力結果

[1, 9, 25, 49, 81]

lambda式を使ってさらに簡潔に

同じ処理は、名前付き関数を定義せず、lambda(無名関数)を使えばより簡潔に記述できます。一度きりの簡単な処理なら、lambdaの方が読みやすくなることもあります。

コード例

s = [1, 3, 5, 7, 9]

result = list(map((lambda x: x ** 2), s))
print(result)

出力結果

[1, 9, 25, 49, 81]

まとめ

このようにPythonでは、関数を「値」として変数に代入したり、他の関数の引数として渡したりできます。map() のような高階関数と組み合わせれば、ループ処理を簡潔に表現でき、コードの可読性と保守性が向上します。ぜひ活用してみてください。

  1. C言語で構造体全体を引数として関数に渡す方法をわかりやすく解説

    C言語では、構造体全体をそのまま関数の引数として渡すことができます。この方法のポイントは以下の2点です。 関数を呼び出す際に、構造体変数の名前を引数として指定します。 関数側(関数ヘッダー)では、同じ構造体型の別の変数として受け取ります。 この方法のデメリット 構造体を引数として渡すと、値渡し(Pass by Value)となるため、関数内で構造体全体のコピーが新たに作成されます。その結果、特に大きな構造体を扱う場合にはメモリを無駄に消費し、処理速度にも影響を与える可能性があります。大きな構造体を扱う場合は、ポインタを使って渡す方法が一般的に推奨されます。 サンプルプログラム 次のプログ

  2. Python Matplotlibで多変量関数をプロットする方法

    Pythonで多変量関数(複数の変数を持つ関数)を視覚的に表現したい場合、Matplotlibの散布図を活用すると、x・y・zの3つの変数の関係を1つのグラフ上で直感的に把握できます。ここでは、具体的な手順とサンプルコードを交えて解説します。実装の手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。NumPyを使って、ランダムな x、y、z のデータ点を生成します。図(figure)とサブプロット(axes)のセットを作成します。x・y・z のデータ点をもとに散布図を描画します。ScalarMappableインスタンス s に対してカラーバーを作成し、z値の色の対