[Python] 람다 함수

2024. 12. 29. 19:37·Programming/Python

람다(lambda) 함수는 함수옇 프로그래밍에서 중요한 개념이며, 익명 함수 라고 많이 부른다. 이름이 없는 함수로, 일반적으로 함수를 한 번만 사용하거나 함수를 인자로 전달해야 하는 경우에 매우 유용하게 사용된다.

 

람다 함수 정의

lambda 인자 : 표현식

 

람다 함수는 def 키워드를 사용하여 함수를 정의하는 것보다 간결하고 간편한 방식으로 함수를 정의할 수 있다. 

예를 들어서 다음과 같은 함수가 있다고 치자.

def add(x, y):
	return x + y

 

이 함수를 람다 함수로 바꾸면 다음과 같이 작성할 수 있다. 

add = lambda x, y : x + y

 

이제 add 변수는 람다 함수를 참조한다.


람다 (lambda) 함수 활용

1. map() 함수와 함께 사용하기

map() 함수는 시퀀스 (리스트, 튜플 등)의 모든 요소에 함수를 적용한 결과를 반환한다. 이 때, map() 함수와 함께 람다 함수를 사용하여 코드를 간결하게 작성할 수 있다.

mylist = [1, 2, 3, 4, 5]

 

이 리스트의 각 요소에 2를 곱하고자 한다면 다음과 같이 map() 함수와 람다 함수를 사용할 수 있다.

mylist2 = list(map(lambda x: x * 2, mylist))
print(mylist2)

 

위 코드는 map() 함수와 람다 함수를 사용하여 mylist 리스트의 각 요소에 2를 곱한 결과를 mylist2 리스트에 저장한다. 

[2, 4, 6, 8, 10]

2. filter () 함수와 함께 사용하기

filter() 함수는 시퀀스(리스트, 튜플 등)의 모든 요소 중에서 조건에 맞는 요소만 반환한다. filter() 함수와 함께 람다 함수를 사용하여 코드를 간결하게 작성할 수 있다. 위와 같이 리스트가 있다고 가정을 해보자.

mylist = [1, 2, 3, 4, 5]

 

이 리스트에서 홀수만 추출하고 싶다면, 다음과 같이 filter() 함수와 람다 함수를 사용하여 홀수만 추출할 수 있다.

mylist2 = list(filter(lambda x : x % 2 == 1, mylist))
print(*mylist2) // 출력 결과 ([1, 3, 5])

위 코드는 filter() 함수와 람다 함수를 사용하여 mylist 리스트의 요소 중에서 홀수만을 추출하여 mylist2 리스트에 저장한다.


3. sorted() 함수와 함께 사용하기

sorted() 함수는 시퀀스(리스트, 튜플 등)의 요소를 정려란 결과를 반환한다. 이 때 sorted() 함수와 함께 람다 함수를 사용하여 정렬 기준을 지정할 수 있다. 예시를 들어보자!

animals = ['tiger', 'lion', 'dog']

이 리스트를 길이 순으로 정렬하고자 한다면 다음과 같이 sorted() 함수와 람다 함수를 사용할 수 있다.

mylist2 = sorted(animals, key=lambda x : len(x))

 

위 코드는 sorted() 함수와 람다 함수를 사용하여 animals 리스트의 요소를 길이 순으로 정렬한 결과를 mylist2 리스트에 저장된다.


4. reduce() 함수와 함께 사용하기

reduce() 함수는 시퀀스(리스트, 튜플 등)의 모든 요소를 누적적으로 계산한 결과를 반환한다. 이때 reduce() 함수와 함께 람다 함수를 사용하여 계산 방식을 지정할 수 있다. 예시를 들어보자.

from functools import reduce
mylist = [1, 2, 3, 4, 5]

이 리스트의 모든 요소를 곱할 때 reduce() 함수와 람다 함수를 사용하면 된다.

result = reduce(lambda x, y : x * y, mylist)
print(result)

위 코드는 reduce() 함수와 람다 함수를 사용하여 mylist 리스트의 모든 요소를 곱한 결화를 result에 저장한다.


이렇게 함수를 이용하여 lambda를 사용해봤다. 

저작자표시 비영리 변경금지

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

[Python / Django] 파이썬 가상 환경 구성  (0) 2025.01.15
[Python] Python 기반 웹 페이지 mariaDB로 생성한 데이터베이스 연동  (0) 2025.01.15
[Python] 클래스  (0) 2024.12.18
[개념]packing 과 unpacking  (1) 2024.11.13
[Python] VPC 구축  (0) 2024.07.10
'Programming/Python' 카테고리의 다른 글
  • [Python / Django] 파이썬 가상 환경 구성
  • [Python] Python 기반 웹 페이지 mariaDB로 생성한 데이터베이스 연동
  • [Python] 클래스
  • [개념]packing 과 unpacking
Kouji
Kouji
Journey to Becoming a Data & Server Engineer
  • Kouji
    Kouji's Data & Server Journey
    Kouji
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Programming
        • Python
        • SQL
      • Data & AI
        • Data Analysis
        • Ai
      • Cloud(AWS)
      • OS
        • Linux
        • Docker
        • Jenkins
        • Ubuntu
        • Window
        • Kubernates
        • Ansible
      • Network
        • NVIDIA
        • Network[이론]
        • Network[GNS3, Packet]
        • Network[On-Premise]
        • Network [L2, L3]
      • 트러블 슈팅
      • Life
        • My Career Stories
        • Personal
      • 개발 + OS 지식 함양
  • 블로그 메뉴

    • 홈
    • 관리 페이지
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    네트워크
    IT
    docker
    보안
    티스토리챌린지
    서버엔지니어
    웹
    네트워크관리사
    ubuntu
    OS
    인프라
    dns
    클라우드엔지니어
    화이팅
    리눅스
    네트워크엔지니어링
    CISCO
    AWS
    VMware
    도커
    오블완
    서버
    네트워크엔지니어
    스위치
    Linux
    라우팅
    L3
    알고리즘
    시스템엔지니어
    인프라엔지니어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Kouji
[Python] 람다 함수
상단으로

티스토리툴바