상세 컨텐츠

본문 제목

파이썬 콜백함수, 람다, map(), filter() 함수

Coding/Python

by 세미531 2022. 1. 20. 21:00

본문

728x90
  • 콜백함수와 매개변수
def call_10_times(func):
    for i in range(10):
        func(i)


def print_hello(number):
    print("안녕하세요", number)


call_10_times(print_hello)

콜백함수는 내가 함수를 호출하는 것이 아니라 다른 함수에서 호출하는 것을 말한다.

 

 

  • lambda 함수 - 콜백함수 코드를 간략하게

매개변수로 함수를 전달하기 위해 함수 구문을 작성하는 것이 번거로움을 방지하기 위해 함수를 간단하게 선언하고 사용

def call_10_times(func):
    for i in range(10):
        func(i)


call_10_times(lambda number: print("안녕하세요", number))

위의 콜백 부분 코드에서는 print_hello 함수가 따로 있었는데 여기는 lambda 함수로 간단하게 처리

 

 

  • filter()

리스트의 요소를 함수에 넣고 리던된 값이 True 인 것으로 새로운 리스트를 구성해주는 함수

 

def 짝수만(number):
    return number % 2 == 0   # 필터 함수에 매개변수 사용시 - 리턴 값이 불인 녀석만 사용 가능


a = list(range(100))
b = filter(짝수만, a)

for i in b:
    print(i)                 # 이렇게 출력하거나

print(list(b))               # 이렇게 출력하거나

# 결과값
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40,
 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80,
 82, 84, 86, 88, 90, 92, 94, 96, 98]
 
 ==================================
 
 a = list(range(100))
b = filter(lambda number: number % 2 ==0, a)        # 람다 코드 사용
print(list(b))


짝수만 = lambda number: number % 2 ==0              # 이렇게도 사용 가능
a = list(range(100))
b = filter(짝수만, a)
print(list(b))

 

  • map()

기존 리스트 기반으로 신규 리스트 만들 때 사용한다

def 제곱(number):
    return number * number


a = list(range(100))
print(list(map(제곱, a)))


# 람다 방식
a = list(range(100))
print(list(map(lambda number: number * number, a)))

 

 

뚱랑이

728x90

관련글 더보기

댓글 영역