[Python] Lambda

2023. 4. 19. 14:29·개발 (Development)/Python

Programmers 문제를 풀며 정렬, 배열 관련 문제 풀이에서 많이 보게되어 이해가 부족하여 정리하고자 한다.

1. Lambda 란?

파이썬에서의 lambda는 런타임에 생성해서 사용할 수 있는 '익명 함수' 이다. 함수형 프로그래밍 언어에서의 lambda와 같은 건 아니지만 map(), filter(), sort() 등에서 많이 사용되는 기능이다. lambda를 사용할 경우 필요한 곳에서 즉시 사용하고 버릴 수 있기 때문에 코드가 간결해지고 메모리가 절약된다.

2. Lambda 사용법

기본

lambda 인자리스트 : 표현식

예시

function = lambda x : x + 1

function(4)
# 5

3. map() 함수 활용

람다 함수의 장점은 map() 함수와 함께 사용될 때 진가를 발휘한다. map() 은 쉽게 말하면 짝을 이어주는 함수이다.

function = map(function, iterable,...)

첫 번째 인자 function는 함수의 이름이다. 두 번째 인자 iterable은 한 번에 하나의 멤버를 반환할 수 있는 객체이다.

(list, str, tuple)

map() 함수는 function을 iterable의 모든 요소에 대해 적용하고 function에 의해 변경된 iterator를 반환한다.

예시

a = [1,2,3,4]

b = [17,12,11,10]

list(map(lambda x, y:x+y, a,b))

#[18, 14, 14, 14]

4. filter() 함수

filter() 함수도 두 개의 인자를 가진다.

function = filter(function, iterable)

filter에 인자로 사용되는 function은 처리되는 각각의 요소에 대해 Boolean 값을 반환한다.

True를 반환하면 그 요소는 남게 되고, False를 반환하면 그 요소는 제거된다.

예시

foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]

list( filter(lambda x: x % 3 == 0, foo) )

# [18, 9, 24, 12, 27]

5. sort() 함수

sort()와 sorted() 모두 정렬 함수이다.

문자열, 리스트, 튜플, 딕셔너리, 집합 구조에서 모두 사용 가능하고 정렬 기준이 되는 key값을 정하고
lambda와 함께 사용하면 된다.

schedule = sorted(schedule,key=lambda x : x[0])
# schedule 리스트를 원소들 중 0번째 인덱스를 key로 정렬하겠다는 의미이다.

[출처]

https://resilient-923.tistory.com/342

 

[Python] 파이썬 lambda 란?

이번 시간에는 파이썬 알고리즘을 풀 때, 그중에서도 정렬 문제를 풀 때 많이 보게 되는 lambda에 대해서 간단하게 정리해보려고 한다. lambda 란? lambda는 그리그 문자 중 11번째 글자이고, AWS서비스

resilient-923.tistory.com

 

반응형

'개발 (Development) > Python' 카테고리의 다른 글

[Python] try, except 문에서 Exception이 여러 개일 경우  (0) 2024.04.17
[Python] List Comprehension  (0) 2024.04.17
[Python] 리눅스 환경에서 윈도우 환경으로 파일 저장 (SMB 프로토콜)  (0) 2024.04.12
[Python] 실행 시간 측정  (0) 2024.04.02
[Python] Zip  (0) 2023.04.19
'개발 (Development)/Python' 카테고리의 다른 글
  • [Python] List Comprehension
  • [Python] 리눅스 환경에서 윈도우 환경으로 파일 저장 (SMB 프로토콜)
  • [Python] 실행 시간 측정
  • [Python] Zip
LoopThinker
LoopThinker
모르는 것을 알아가고, 아는 것을 더 깊게 파고드는 공간
  • LoopThinker
    CodeMemoir
    LoopThinker
  • 전체
    오늘
    어제
    • 분류 전체보기 (231)
      • 개발 (Development) (165)
        • Algorithm (1)
        • Angular (1)
        • AWS (6)
        • DeepSeek (2)
        • Docker (7)
        • Git (3)
        • Java (34)
        • JavaScript (4)
        • Kafka (5)
        • Kubernetes (4)
        • Linux (7)
        • PostgreSQL (38)
        • Python (31)
        • React (3)
        • TypeScript (3)
        • Vue.js (5)
        • General (11)
      • 데이터 분석 (Data Analysis) (1)
      • 알고리즘 문제 풀이 (Problem Solving.. (27)
      • 자격증 (Certifications) (24)
        • ADsP (14)
        • 정보처리기사 (4)
        • Linux Master (5)
        • SQLD (1)
      • 기술 동향 (Tech Trends) (11)
      • 기타 (Others) (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    리눅스 마스터 2급
    오답노트
    백준알고리즘
    Spring boot
    java
    javascript
    Linux master
    PostgreSQL
    deepseek
    timescaledb
    리눅스 마스터 2급 2차
    Vue.js
    Linux
    자바
    JPA
    DevOps
    Kafka
    데이터분석
    백준온라인저지
    springboot
    백준자바
    백준
    docker
    Kubernetes
    ADsP
    AWS
    MyBatis
    python
    pandas
    JSON
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
LoopThinker
[Python] Lambda
상단으로

티스토리툴바