[파이썬] filter, map, lambda 함수 설명Python2021. 12. 3. 16:00
Table of Contents
오늘은 효율성 있는 코드를 짤때 자주 사용되는 filter, map, lambda에 대해 공부해보겠습니다.
이 글에 적힌 내용을 마스터하시면 코드 효율성은 물론이고, 코딩할 때 멋이 삽니다.
lambda 함수
람다식은 간단한 함수를 한줄로 축약하는 기능을 가졌습니다.
람다의 장점은 메모리 절약이 있고, 특징으로는 "elif는 사용 불가"가 있습니다.
기본 형태는 다음과 같습니다.
lambda <인수> : <조건이 True일 때 반환값> if <조건> else <조건이 False일 때 반환값>
만약 n이 17보다 크면 True를 그렇지 않다면 False를 반환하는 코드를 함수와 람다식으로 각각 아래와 같이 표현할 수 있습니다.
1. 함수
def calc(n):
if n > 17:
return True
else:
return False
2. 람다
lambda n : True if n>17 else False
이 람다식은 다른 함수들과 응용해서 작성했을 때 더욱 빛을 바랍니다.
이 글에서는 filter와 map으로 응용 예를 보여드리겠습니다.
filter 함수
filter는 함수에 대해 True를 반환하는 값을 필터링해주는 기능을 가졌습니다.
필터링 : 조건에 맞는 것만 걸러주는 행위
filter의 기본 형태는 다음과 같습니다.
반복 가능한 자료에는 리스트, 튜플, 딕셔너리, set이 있습니다.
filter(함수, 반복 가능한 자료)
사용 예를 보겠습니다.
# 기본 함수 + 필터 함수
def calc(n): # 17보다 크면 True를 반환하고, 그렇지 않다면 False를 반환합니다.
if n > 17:
return True
else:
return False
listB = list(filter(calc, [1, 15, 17, 18])) # 필터 작업 후, list함수를 사용하여 리스트로 출력
>>> print(listB)
[18]
# 람다 + 필터 함수 응용 예)
>>> print(list(filter(lambda n : True if n>17 else False, [1, 15, 17, 18])))
[18]
17보다 큰 수를 제외하고는 필터링 되었습니다.
map 함수
map은 반복 가능한 자료 내에 있는 모든 값에 함수를 적용합니다.
map(함수, 반복 가능한 자료)
사용 예를 보겠습니다.
# 기본 함수 + 필터 함수
def double(x):
return x*2
>>>print(list(map(double, [1, 2, 3, 4, 5])))
[2, 4, 6, 8, 10]
# 람다식 + map 함수
>>>print(list(map(lambda x: x*2, [1, 2, 3, 4, 5])))
[2, 4, 6, 8, 10]
리스트 정수(int) 변환
>>> print(list(map(int, ['1','2','3','4','5','001']))
[1, 2, 3, 4, 5, 1]
리스트 문자열(str) 변환
>>> print(list(map(str, [1, 2, 3, 4, 5, 1]))
['1','2','3','4','5','1']
filter와 map만 이해하시면 됩니다 !
람다식은 꾸준히 읽어보세용
'Python' 카테고리의 다른 글
[백준 1080] 행렬 해설 및 풀이 (파이썬) (0) | 2021.12.09 |
---|---|
[파이썬] zip, Unzip 함수 설명 (0) | 2021.12.04 |
[파이썬] 코로나 자동 자가진단 (리눅스 오픈소스) (0) | 2021.12.01 |
[파이썬 모듈] 스케줄 모듈 schedule (0) | 2021.11.30 |
리눅스 백그라운드 파이썬 실행하는 법 (0) | 2021.11.29 |
@임채성 :: 푸르고 개발 블로그
글 내용 중 잘못되거나 이해되지 않는 부분은 댓글을 달아주세요! 감사합니다! 문의: puleugo@gmail.com