🔷 lambda 람다
# case1) def
def square1(z):
return z * z
# case2) lambda
square2 = lambda z: z * z
## case1)과 case2) 동일한 기능
# assert() : 두 값이 같으면 통과, 아니면 에러
assert(square1(2400) == square2(2400))
- 람다 함수는 함수가 코드에서 한 번만 사용할 때 사용하면 유용함
- 람다는 def랑 동일한 기능을 해줌
- But!! def는 호출을 통해 여러번 사용할 때 유용
- assert( ) 는 테스트할 때 주로 사용
# case1)
if condition:
answer = 'a'
else:
answer = 'b'
# case2)
answer = 'a' if condition else 'b'
## case1) case2) 동일한 기능
#* python은 빈리스트, 빈딕셔너리, 빈문자열의 경우 False로 체크함
🔷 함수를 리턴하는 함수
# example1)
def adder(n):
def helper(x):
return x + n
return helper
add_five = adder(5)
print(add_five(7))
>>> 12
🔶 python type check : type(n)
# example1)
if type(n) is not float:
return False
## n의 타입이 실수가 아니면 False를 리턴
## type check 할때는 != 이 아니라 is not 사용
🔷 map( ) 파이썬 기본함수
##* map() 기본 사용 예시
test = map( 적용할 함수, 함수가 적용되는 데이터(리스트) )
test = map( function1, list_1)
test = map( lambda ~~, list_1)
- 데이터 구조의 각 원소들에 대해서 동일하게 함수를 적용하여 새로운 데이터 만드는 함수
- map( )은 데이터를 map이라는 클래스로 저장하고, 데이터가 필요해질 때 주어진 함수 연산을 수행
- 주의! with open의 경우 블락이 끝나는 부분에서 자동으로 파일 close 해줌
- problem) but. map의 경우 연산이 바로 안되기에 close 된 후 연산을 호출할 경우 error가 뜰 수 있음
- solve) map 객체를 list()로 변환해주고 블락 마무리 or return list(map_ob)
🔶 map( ) 사용 장점
## map object 와 연산 예시
test = map( function2, list_2 )
print(test[1]) # 이때 function2가 적용이 됨(연산이됨)
print(test)
>>> <map object at 0x12341234>
- list comprehension을 사용하면 리스트 전체를 연산해줘야 함
- 반면 map()은 약속만 해놓고 넘어갔다가 필요할 때만 변환해서 씀
- map()은 불필요한 연산을 하지 않아서 리스트 캄프리헨션 보다 빠름
- 내용을 하나하나 필요할 경우 list()로 map 데이터를 변환시켜줌
🔷 filter( ) 필터 함수
## filter함수 사용 예시
[x for x in data if func(x)]
filter(func, data)
filter_list1 = filter(func1, list1)
## list1 데이터에서 func1함수를 적용하여 true인 데이터만 filter_list에 저장됨
starts_with_m = lambda m: m.startswith('m')
fliter_list2 = filter(starts_with_m, list2)
print(filter_list2)
>>> <filter object at 0x43214321>
- list와 같은 데이터 집합에 사용되는 함수
- map과 비슷하지만 filter는 true일 경우에 대해서 새로운 데이터에 포함시켜줌
- 주의! filter 함수는 list가 아닌 filter 타입을 가지고 연산을 미룸
- map과 같이 list()로 변환해줘서 즉시 연산을 다 처리해주는 방식 사용 가능
본 포스팅은 Elice 자료를 참고하여 정리한 글입니다
'데이터분석' 카테고리의 다른 글
[python 기초] 딕셔너리 | JSON | 집합 (0) | 2022.04.04 |
---|---|
[python 기초] 문자열 함수 | 파일 | 튜플, 리스트 (0) | 2022.04.04 |