[python]Ramda式(lambda expression)
14243 ワード
🎈 ランダ式
lambda 매개변수들 : 식
実行時に関数の機能を作成して使用できる匿名関数.
結果セクションを自動的に返し、returnキーを使用しない
定義と同時に使用可能
コードに変数が必要な場合、Ramda式では新しい変数を作成できません.
defを使用して関数を作成する
呼び出しramda式自体=>
(lambda 매개변수들 : 식)(인수들)
print((lambda x, y : x + y)(10, 20))
#출력 결과
#30
🎈 Ramda式の使用例
map()
a = [1, 2, 3, 4, 5]
b = [2, 4, 6, 8, 10]
l = list(map(lambda x, y : x*y , a, b))
print(l)
#출력 결과
#[2, 8, 18, 32, 50]
reduce()
reduce(함수, 반복가능한객체)
繰り返し可能なオブジェクトの各要素を指定した関数として処理し、前の結果と累積して返される関数です.
reduce(function,[1,2,3,4,5])ではlistは[function(1,2,3,4,5])であり、そのうちの1つの要素が1つ残るまで減少し、reduce(function,[function(1,2,3,4,5])は繰り返し
❗繰り返し文で処理できる場合はreduceではなくfor,whileを用いる
from functools import reduce
nums = [i+1 for i in range(5)]
r = reduce(lambda x, y: x+y, nums)
print(r)
#출력 결과
#15
filter()
nums = [1, 3, 5, 7, 9, 11, 13]
l = list(filter(lambda x : x > 5 and x < 10, nums))
print(l)
#출력 결과
#[7, 9]
条件式の使用
lambda 매개변수들: 식1 if 조건식 else 식2
(SyntaxErrorのみを使用する場合)
条件が多い場合はdefを直接使用して関数を作成する.
nums = [i+1 for i in range(10)]
l = list(map(lambda x: str(x) if x%2==0 else x, nums))
print(l)
#출력 결과
#[1, '2', 3, '4', 5, '6', 7, '8', 9, '10']
ラム多項式を関数のパラメータとする
def func(f, word):
print(f(1, 2))
print(word)
func((lambda x, y : x + y), "hello")
#출력 결과
#3
#hello
ツールバーの
key
パラメータを使用して比較関数튜플
です.l = [4, 2, 1, 6, -1, 5, 10, -10, 8]
l.sort(key=lambda x: x)
print(l)
#출력 결과
#[-10, -1, 1, 2, 4, 5, 6, 8, 10]
l = [[1, '카'], [5, '라'], [3, '나'], [2, '다'], [1, '가']]
l.sort(key = lambda x : x[0])
print(l)
l.sort(key = lambda x : (x[0], x[1]))
print(l)
#출력 결과
#[[1, '카'], [1, '가'], [2, '다'], [3, '나'], [5, '라']]
#[[1, '가'], [1, '카'], [2, '다'], [3, '나'], [5, '라']]
リファレンスhttps://wikidocs.net/22804
https://dojang.io/mod/page/view.php?id=2359
https://dojang.io/mod/page/view.php?id=2360
https://m.blog.naver.com/PostView.nhn?blogId=pjok1122&logNo=221590043882&proxyReferer=https:%2F%2Fwww.google.com%2F
https://offbyone.tistory.com/73
Reference
この問題について([python]Ramda式(lambda expression)), 我々は、より多くの情報をここで見つけました https://velog.io/@chldppwls12/Python-람다-표현식-lambda-expressionテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol