[python]Ramda式(lambda expression)


🎈 ランダ式

lambda 매개변수들 : 식

  • 実行時に関数の機能を作成して使用できる匿名関数.

  • 結果セクションを自動的に返し、returnキーを使用しない

  • 定義と同時に使用可能

  • コードに変数が必要な場合、Ramda式では新しい変数を作成できません.
    defを使用して関数を作成する

  • 呼び出しramda式自体=>(lambda 매개변수들 : 식)(인수들)
  • print((lambda x, y : x + y)(10, 20))
    
    #출력 결과
    #30
  • メモリと速度の面で従来の関数式より優れている
  • Pythonはオブジェクト向けプログラミング言語であるため、関数もオブジェクト=>関数として定義実行すると、メモリに
  • が格納される.
  • But Ramda式は、メモリの問題を心配することなく1回使用され、消失しました.
  • 🎈 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
  • Ramda式でifが使用されている場合はelseを使用する必要があります
    (SyntaxErrorのみを使用する場合)
  • Ramda式では、elifは使用できません=>ifは
  • を連続的に使用する必要があります.
    条件が多い場合は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

    ツールバーの

  • sort()/sorded()の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