[Python] 람다 함수(lambda)

2023. 9. 7. 10:22·Development/Python

람다 함수의 존재는 익히 알고 있었지만 그동안 활용하지 못하다가, 기존 코드의 길이를 줄이고 가독성을 향상 시키기 위해 사용하려고 정리하는 글이다. (드디어) 🤓🤪

람다 함수란

람다 함수는 파이썬에서 간단한 함수를 빠르게 작성하기 위한 방법 중 하나다. 일반적인 함수를 정의하는 것보다 문법이 더 간결하며, 보통 한 줄로 표현된다.

 

람다 함수의 기본 구조

lambda arguments: expression
  • lambda: 람다 함수를 정의하는 키워드
  • arguments: 람다 함수에 전달할 인자를 나열. 쉼표로 구분되며, 여러 개의 인자를 사용할 수 있음.
  • expression: 인자를 사용하여 계산되는 표현식. 이 표현식의 결과가 람다 함수의 반환값이 됨.

 

예시

1. 두 숫자를 더하는 람다 함수:

f = lambda x, y: x + y
print(f(2, 3))  # 출력: 5

2. 주어진 숫자의 제곱을 반환하는 람다 함수:

square = lambda x: x**2
print(square(4))  # 출력: 16

 

코드에서의 람다 함수 사용

기존 코드에서는 각 조건에 따라 실행할  특정 작업을 딕셔너리의 형태로 정의하였는데, 길이가 길고 가독성이 좋지 않아서 람다함수로 수정하였다.

# 기존 코드
 if doc_text_list["e"] == 'text':
	str_contents += doc_text_list["t"]
# 수정된 코드
'text': lambda: doc_text_list["t"]

`text` 조건일때 doc_text_list["t"] 값을 반환하는 람다 함수를 딕셔너리의 값으로 설정하는 코드이다.

딕셔너리의 `get`메서드를 사용하여 해당 조건에 대한 람다 함수를 가져와 실행하며, 그 결과를 str_contents 변수에 추가한다.

람다 함수를 사용하는 주요 이유는 코드의 간결성과 표현의 직관성 때문이다. 각 조건에 따른 작업을 딕셔너리 형태로 쉽게 정의하고 참조할 수 있기 때문에 코드의 가독성과 유지보수성이 향상된다.

 


최근에 python 으로 여러 코드들을 작성하고 사용하면서 느낀점인데, 개발이 용이하고 직관적이고 다양한 모듈을 사용할 수 있다는게 큰 매력이고 장점이지만 아무래도 다른 언어 대비 무거운 느낌이 없지않아있다. 특히 어제 MySQL 데이터 28만건 정도를 MongoDB로 마이그레이션했는데 이 과정에서 Python 으로 개발한 코드를 사용하였다. 속도는 크게 느리지않았지만, 메모리 사용률이 높아서 다른 작업에 조금 영향을 끼쳤다. 코드의 성능도 확인해봐야겠지만 Python 의 메모리 사용률이 그렇게 큰건 처음봐서 좀 놀랐다.

* 오늘의 결론: 역시 공부는 끝이 없고 파도 파도 새로울 뿐. 다시 보면 새롭고 지금은 맘에 드는 코드여도 나중에 보면 '이거 왜 이렇게 짰어'가 된다.

'Development > Python' 카테고리의 다른 글

[Python] 명명 규칙에 관련한 내용 정리  (0) 2023.08.13
[Python] 이미지 분석 모듈 사용해보기  (0) 2023.07.20
[Python] pass 명령어란?  (2) 2023.06.18
[Python] scrapy 모듈 사용하여 크롤링하기  (0) 2023.06.18
[Python] base64 디코드  (0) 2023.05.23
'Development/Python' 카테고리의 다른 글
  • [Python] 명명 규칙에 관련한 내용 정리
  • [Python] 이미지 분석 모듈 사용해보기
  • [Python] pass 명령어란?
  • [Python] scrapy 모듈 사용하여 크롤링하기
곽진돔
곽진돔
Developer
  • 곽진돔
    echo "곽박한 세상";
    곽진돔
  • 전체
    오늘
    어제
    • 분류 전체보기 (184)
      • Development (57)
        • Linux (13)
        • k8s (3)
        • Docker (5)
        • AWS (1)
        • PHP (35)
        • Python (21)
        • Java (1)
        • SpringBoot (4)
        • JavaScript (1)
        • React (8)
        • MySql (19)
        • MongoDB (1)
      • Daily (4)
      • Study (6)
        • TIL (1)
        • license (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 설정
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    MySQL
    Java
    CentOS7
    nodejs
    chromedriver
    docker
    Python
    리액트
    Shell
    springboot
    date
    CentOS
    크롤링
    IP
    JavaScript
    정규표현식
    Linux
    php
    react
    인코딩
    UTF8
    스프링부트
    Selenium
    error
    ssh
    리눅스
    HTML
    SQL
    윈도우
    db
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
곽진돔
[Python] 람다 함수(lambda)
상단으로

티스토리툴바