python 익명 함수와 삼원 연산 학습 노트

익명 함수
익명 함수는 디스플레이가 필요 없는 지정한 함수 이름입니다.
먼저 코드 한 줄을 보십시오.

def calc(x,y):
    return x*y
print(calc(2,3))
 
#  
 
calc = lambda x,y:x*y
print(calc(2,3))
너는 아마 이 물건을 사용하면 털이 있는 것이 편리하지 않다고 말할 것이다.허허, 만약 이렇게 사용한다면 확실히 모선 개선은 없지만 익명 함수는 주로 다른 함수와 조합하여 사용하는 것이다. 다음과 같다.

res = map(lambda x:x**2,[1,2,3,4,5])
print(list(res))
#  :
# [1, 4, 9, 16, 25]
for i in res:
    print(i)
#  :
# 1
# 4
# 9
# 16
# 25
익명 함수의 역할:
1, 코드 절약
2, 고급
lambda 표현식
lambda 원형: lambda 매개 변수: 조작 (매개 변수)
lambda 함수도 익명 함수라고 하는데 구체적인 명칭이 없는 함수이다. 그는 일방 함수를 신속하게 정의하여 함수가 필요한 곳에 사용할 수 있도록 허락한다.이것은 def가 정의한 함수와 구별됩니다.
lambda와 def의 차이점:
  • def를 만드는 방법은 이름이 있지만 lambda는 없습니다
  • lambda는 함수 대상을 되돌려주지만 이 대상은 표지부호에 값을 부여하지 않고 def는 함수 대상을 변수에 부여합니다
  • lambda는 하나의 표현식일 뿐이고 def는 하나의 문장이다
  • lambda 표시식':'뒤에 표현식이 하나만 있고 def는 여러 개가 있을 수 있다..
  • if나 for나 print 같은 문장은lambda에 사용할 수 없으며 def는 사용할 수 있다
  • lambda는 일반적으로 간단한 함수를 정의하는데 def는 복잡한 함수를 정의할 수 있다
  • 
    >>> def add(x,y):           # 
        return x+y              # 
     
    >>> z=f(3,4)               
    >>> print(z)
    7                                     # 7
    >>> lambda x,y:x+y
    <function <lambda> at 0x0000020F385B86A8>   
    # lambda    function( ) 
    >>> f=lambda x,y:x+y          # add(x,y)        
    >>> f(1,2)
    3
    >>> f(3,4)
    7
    >>> def multiply(x,y):
        return x*y
     
    >>> multiply(3,4)
    12
    >>> multiply=lambda x,y:x*y
    >>> multiply(3,4)
    12
    >>> def subtract(x,y):
        return x-y
     
    >>> subtract(3,4)
    -1
    >>> subtract=lambda x,y:x-y
    >>> subtract(3,4)
    -1
     
    >>> def divide(x,y):
        return x/y
     
    >>> divide(4,2)
    2.0
    >>> divide=lambda x,y:x/y
    >>> divide(4,2)
    2.0
     
    # , , lambda , 
    lambda의 응용
    
    # 2.lambda  
    # ---CASE 1
    fs = map(lambda i:(lambda j: i*j), range(6))
    print([f(2) for f in fs])
     
    #---CASE 2
    fs = [lambda j:i*j for i in range(6)]
    print([f(2) for f in fs])
     
    #---CASE 3
    fs = []
    for i in range(6):
        fs.append(lambda j:i*j)
        if i==3:
            break
    print([f(2) for f in fs])
     
    #---CASE 4
    fs = [(lambda i:lambda j:i*j)(i) for i in range(6)]
    print([f(2) for f in fs])
     
    #  :
    # [0, 2, 4, 6, 8, 10]
    # [10, 10, 10, 10, 10, 10]
    # [6, 6, 6, 6]
    # [0, 2, 4, 6, 8, 10]
    map () 함수
    다음은 맵 () 함수를 보십시오. 이것은 하나의 함수를 매거할 수 있는 유형 위에 비출 수 있습니다.위에서 제시한 a와 f를 따라 쓸 수 있습니다.
    
    map(f , a)
    즉, 함수 f를 순서대로 a의 모든 원소에 끼워 결과를 얻는다.lambda 표현식으로 f를 바꾸면 다음과 같이 됩니다.
    
    map( lambda x : x + 1, [1, 2, 3] )
    일목요연하다.
    Apply() 함수
    Python에서 apply 함수의 형식은:apply(func,*args,*kwargs)
    물론,func는 익명 함수일 수 있습니다.
    용도: 하나의 함수의 매개 변수가 하나의 원조나 사전에 존재할 때 이 함수를 간접적으로 호출하고 요소나 사전의 매개 변수를 순서대로 매개 변수에 전달한다.
    해석:args는 함수에 따라 필요한 매개 변수를 전달하는 위치 매개 변수를 포함하는 원조이다.간단하게 말하자면 만약에 A 함수의 함수 위치가 A(a=1, b=2)라면 이 원조에서는 반드시 이 매개 변수의 위치 순서에 따라 전달(a=3, b=4)해야 하며 (b=4, a=3)와 같은 순서가 되어서는 안 된다.kwargs는 키워드 파라미터를 포함하는 사전입니다. 그 중에서args가 전달되지 않으면,kwargs가 전달해야 합니다.args의 위치에 비어 있어야 합니다.
    apply의 반환값은 함수func 함수의 반환값입니다.
    
    def function(a,b): 
         print(a,b) 
     apply(function,('good','better')) 
     apply(function,(2,3+6)) 
     apply(function,('cai','quan')) 
     apply(function,('cai',),{'b':'caiquan'}) 
     apply(function,(),{'a':'caiquan','b':'Tom'}) 
    출력 결과:
    
    ('good', 'better')
    (2, 9)
    ('cai', 'quan')
    ('cai', 'caiquan')
    ('caiquan', 'Tom')
    삼원 연산
    삼원 연산은 삼목 연산이라고도 부르며 간단한 조건 문장에 대한 약어이다.
    예를 들면: 간단한 조건 문장――> 삼원 연산
    
    if  :
        val = 1
    else:
        val = 2
    
    val = 1 if   else 2
    python의 삼원 연산자는 다른 언어와 같지 않고, 다른 것은 일반적으로 모두
    판정 조건?진짜 결과: 가짜 결과
    ... 와 같다
    
    result = 5 >3?1:0
    python의 형식은 다음과 같습니다.
    
      if    else  <br>result =x if condition else y
    예:
    
    1 if 5>0 else 0
    
    def func(x,y):
      ''' , x y, x-y, , y-x'''
      return x-y if x>y else y-x
    
    r1 = func(10,18)
    r2 = func(18,12)
    print(r1)
    print(r2)
    
     :
    8
    6
    이상은python 익명 함수와 삼원 연산 학습 노트의 상세한 내용입니다. 더 많은python 익명 함수와 삼원 연산에 관한 자료는 저희 다른 관련 글을 주목해 주십시오!

    좋은 웹페이지 즐겨찾기