파이썬에서 함수를 선언할 때는, def 함수이름(): 으로 시작하기 때문에 최소 두 줄의 코드가 필요합니다.
def add3(a):
return a + 3
파이썬의 람다(lamdba)
위에서 예를 든 것과 같은 간단한 함수를 한 줄로 표현할 수 있게 도와주는 것이 바로 람다입니다.
add3 = lambda x: x + 3
근데 함수를 한 줄로 줄인다고 해서 뭐가 좋은 걸까요? (가독성만 나빠지는 것 같은데..)
람다를 사용하는 가장 큰 이유는 함수를 매개변수로 전달해야 하는 경우입니다. 파이썬의 map 함수 같은 경우에는 첫번째 매개변수로 함수를 요구합니다.
map(함수, 리스트)
map 함수는 주로 숫자 요소로 구성되어 있는 리스트를 문자열 요소 리스트로 바꾸고 싶을 때(아니면 그 반대의 경우에) 많이 사용합니다.
list1 = [1, 2, 3, 4, 5, 6]
list2 = map(str, list1)
print(list(list2)) # map 함수의 리턴값은 iterator이기 때문에 list 함수에 넣어줘야 리스트로 변환됨
str 함수 말고 이번에는 람다로 만든 함수를 넣어보겠습니다. 위에서 만들어본 3을 더해주는 함수를 넣어볼까요?
list1 = [1, 2, 3, 4, 5, 6]
list2 = map(lambda x: x + 3, list1)
print(list(list2)) # map 함수의 리턴값은 iterator이기 때문에 list 함수에 넣어줘야 리스트로 변환됨
list1의 요소들이 모두 3씩 더해진 것을 잘 확인할 수 있습니다. 람다 덕분에 코드를 간결하게 작성할 수 있었습니다.
'Dev > python' 카테고리의 다른 글
[python] SQLAlchemy로 데이터 조회하는 방법, fetchall() (0) | 2022.09.07 |
---|---|
[python] 딕셔너리 키 리스트, 값 리스트 생성하기 (7) | 2022.09.06 |
[python, opencv] 이미지에 한글 텍스트 삽입하기, pillow 활용 (0) | 2022.09.04 |
[flask] Ajax로 json 데이터 post 전달시 flask 서버 get_json() 관련 오류 해결 방법 (0) | 2022.08.29 |
[pandas] SQL의 JOIN 역할을 하는 pd.merge와 df.join (0) | 2022.08.15 |
[pandas] 파이썬 판다스로 엑셀 파일을 읽고 쓰려면 openpyxl도 추가로 설치해야 함 (0) | 2022.08.15 |
[flask+jinja2] flask 프로젝트에서 html에 이미지 삽입하는 방법 (0) | 2022.08.09 |
[PyQt6] pyqt 앱 윈도우 크기 고정 방법 (0) | 2022.08.05 |