[プログラミングベース]Python lambda関数まとめ
18429 ワード
Python lambda関数チュートリアルでは、Pythonで匿名関数を作成する方法を示しています.Pythonの匿名関数はlambdaキーワードを使用して作成されます.
文書ディレクトリ 1紹介 1.1単純使用 1.2 Python lambdaとmap 1.3 Python lambdaとfilter 1.4 Python lambdaとsort 2参照 1紹介
Python lambda関数は匿名関数とも呼ばれ、名前のないインライン関数です.これらはlambdaキーワードで作成されます.これはPythonを内蔵した関数モデルの一部です.Python lambda関数は1つの式に限られています.通常の機能を使用できる場所で使用できます.
Python lambdaには、次の構文があります.
文はlambdaキーワードを使用して匿名関数を作成します.の双曲線コサインを返します.xはlambda関数に渡されるパラメータです.パラメータxの後ろには、コロン文字が付いています.コロンの右側のコードはlambda関数を呼び出すときに実行される式です.Lambda関数はz変数に割り当てられる.
1.1簡単な使用
次の例では、2つの関数が1つの値に対して平方を求めます.
Lambda関数は、次のように入力しなくてもよい.
Lambda関数は、パラメータを複数入力することもできます.例は次のとおりです.
1.2 Python lambdaとmap
Python lambda関数はmap()関数に役立ちます.より簡潔なコードを作成できます.Python map()は、与えられた関数を反復iterableの各項目に適用し、反復iteratorオブジェクトを返す内蔵関数です.Python 2 map関数はリストを返し、Python 3 map関数は反復器を返します.
Python lambda関数はmap()関数に役立ちます.より簡潔なコードを作成できます.Python map()は、指定した関数をiterableの各アイテムに適用し、反復オブジェクトを返す内蔵関数です.次の例では、map()にパラメータとしてインライン関数を作成します.map()関数を使用して、lambda関数をリストの各要素に適用します.
もちろんlambada関数はmap()関数と組み合わせて2つのパラメータを入力できます.次の例では、2つのリストを提供し、2つのリストの同じ位置のデータを加算します.
1.3 Python lambdaとfilter
Python lambda関数はfilter()関数とともに使用できます.関数の役割は、iterableからtrueを返す要素からリストを構築することです.
file()関数はpython固有の関数で、主に設定条件に合致しない要素をフィルタリングし、条件に合致する要素からなる反復器iterableを返すために使用されます.この関数には2つの入力パラメータがあり、1つ目のパラメータは処理関数で、2つ目のパラメータは処理するシーケンスです.シーケンスの各要素はパラメータとして関数を判断し、TrueまたはFalseを返し、Falseを返すパラメータにフィルタリングし、Trueを返す要素を反復器に配置します.
次の例では、filter()を使用して奇数をフィルタリングする例を示します.
次の例では、lambda関数とfilter関数を組み合わせて整数リストをフィルタします.新しいリストには奇数の整数のみが含まれます.filter()の最初の関数は、リスト要素を処理する関数、すなわちlambda関数です.
1.4 Python lambdaとsort
Pythonリストには、内蔵のリストソート()がリストをその場で変更する方法があります.このメソッドには、比較する前に各リスト要素で呼び出す関数を指定するキーパラメータがあります.ここではlambda関数を使用できます.次の例では、lambda関数を使用して、ユーザーの生年月日に従って逆の順序でソートすることを示します.
2参考
http://zetcode.com/python/lambda/
https://www.runoob.com/python/python-built-in-functions.html
文書ディレクトリ
Python lambda関数は匿名関数とも呼ばれ、名前のないインライン関数です.これらはlambdaキーワードで作成されます.これはPythonを内蔵した関数モデルの一部です.Python lambda関数は1つの式に限られています.通常の機能を使用できる場所で使用できます.
Python lambdaには、次の構文があります.
z = lambda x: x * y
文はlambdaキーワードを使用して匿名関数を作成します.の双曲線コサインを返します.xはlambda関数に渡されるパラメータです.パラメータxの後ろには、コロン文字が付いています.コロンの右側のコードはlambda関数を呼び出すときに実行される式です.Lambda関数はz変数に割り当てられる.
1.1簡単な使用
次の例では、2つの関数が1つの値に対して平方を求めます.
def square(x):
return x * x
# lambda 。 , 。sqr_fun lambda
sqr_fun = lambda x: x * x
print(square(3))
print(sqr_fun(4))
9
16
Lambda関数は、次のように入力しなくてもよい.
def constant():
return 1
# lambda
constant_fun = lambda: 1
print(constant())
print(constant_fun())
1
1
Lambda関数は、パラメータを複数入力することもできます.例は次のとおりです.
def product(x, y):
return x * y
#
product_fun = lambda x,y : x * y
print(product(3,4))
print(product_fun(4,3))
12
12
1.2 Python lambdaとmap
Python lambda関数はmap()関数に役立ちます.より簡潔なコードを作成できます.Python map()は、与えられた関数を反復iterableの各項目に適用し、反復iteratorオブジェクトを返す内蔵関数です.Python 2 map関数はリストを返し、Python 3 map関数は反復器を返します.
def square(x):
return x * x
#
result=map(square,[1,2,3,4,5])
print(result)
#
for i in result:
print(i)
Python lambda関数はmap()関数に役立ちます.より簡潔なコードを作成できます.Python map()は、指定した関数をiterableの各アイテムに適用し、反復オブジェクトを返す内蔵関数です.次の例では、map()にパラメータとしてインライン関数を作成します.map()関数を使用して、lambda関数をリストの各要素に適用します.
nums = [1, 2, 3, 4, 5, 6]
nums_squared = map(lambda x: x * x, nums)
for num in nums_squared:
print(num)
1
4
9
16
25
36
もちろんlambada関数はmap()関数と組み合わせて2つのパラメータを入力できます.次の例では、2つのリストを提供し、2つのリストの同じ位置のデータを加算します.
num_add = map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
for num in num_add:
print(num)
3
7
11
15
19
1.3 Python lambdaとfilter
Python lambda関数はfilter()関数とともに使用できます.関数の役割は、iterableからtrueを返す要素からリストを構築することです.
file()関数はpython固有の関数で、主に設定条件に合致しない要素をフィルタリングし、条件に合致する要素からなる反復器iterableを返すために使用されます.この関数には2つの入力パラメータがあり、1つ目のパラメータは処理関数で、2つ目のパラメータは処理するシーケンスです.シーケンスの各要素はパラメータとして関数を判断し、TrueまたはFalseを返し、Falseを返すパラメータにフィルタリングし、Trueを返す要素を反復器に配置します.
次の例では、filter()を使用して奇数をフィルタリングする例を示します.
def is_even(x):
return x % 2 == 0
result = filter(is_even, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(result)
for i in result:
print(i)
2
4
6
8
10
次の例では、lambda関数とfilter関数を組み合わせて整数リストをフィルタします.新しいリストには奇数の整数のみが含まれます.filter()の最初の関数は、リスト要素を処理する関数、すなわちlambda関数です.
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
nums_filtered = list(filter(lambda x: x % 2, nums))
print(nums_filtered)
[1, 3, 5, 7, 9, 11]
1.4 Python lambdaとsort
Pythonリストには、内蔵のリストソート()がリストをその場で変更する方法があります.このメソッドには、比較する前に各リスト要素で呼び出す関数を指定するキーパラメータがあります.ここではlambda関数を使用できます.次の例では、lambda関数を使用して、ユーザーの生年月日に従って逆の順序でソートすることを示します.
users = [
{'name': 'John Doe', 'date_of_birth': 1987},
{'name': 'Jane Doe', 'date_of_birth': 1996},
{'name': 'Robert Brown', 'date_of_birth': 1977},
{'name': 'Lucia Smith', 'date_of_birth': 2002},
{'name': 'Patrick Dempsey', 'date_of_birth': 1994}
]
# date_of_birth
def takeBirth(elem):
return elem['date_of_birth']
#
users.sort(key=takeBirth)
for user in users:
print(user)
print('-'*50)
# list.sort() reverse ,key
users.sort(reverse=True, key=lambda e: e['date_of_birth'])
for user in users:
print(user)
{'name': 'Robert Brown', 'date_of_birth': 1977}
{'name': 'John Doe', 'date_of_birth': 1987}
{'name': 'Patrick Dempsey', 'date_of_birth': 1994}
{'name': 'Jane Doe', 'date_of_birth': 1996}
{'name': 'Lucia Smith', 'date_of_birth': 2002}
--------------------------------------------------
{'name': 'Lucia Smith', 'date_of_birth': 2002}
{'name': 'Jane Doe', 'date_of_birth': 1996}
{'name': 'Patrick Dempsey', 'date_of_birth': 1994}
{'name': 'John Doe', 'date_of_birth': 1987}
{'name': 'Robert Brown', 'date_of_birth': 1977}
2参考
http://zetcode.com/python/lambda/
https://www.runoob.com/python/python-built-in-functions.html