본문 바로가기
⌨️ Algorithm/Python

[Python 문법] 람다(lambda)

by Lucy Oh 2023. 1. 12.

자료 제공: https://dojang.io/mod/page/view.php?id=2359 

 

파이썬 코딩 도장: 32.1 람다 표현식으로 함수 만들기

Unit 32. 람다 표현식 사용하기 지금까지 def로 함수를 정의해서 사용했습니다. 이번에는 람다 표현식으로 익명 함수를 만드는 방법을 알아보겠습니다. 람다 표현식은 식 형태로 되어 있다고 해서

dojang.io

 

람다

람다 표현식으로 익명함수 만들기

람다 표현식은 식 형태로 되어 있다고 해서 람다 표현식(lambda expression)이라고 부른다.

특히 람다 표현식은 함수를 간편하게 작성할 수 있어 다른 함수의 인수로 넣을 때 주로 사용한다!

 

정의하기

def로 정의한 함수와 람다 표현식으로 만든 함수를 비교해보자.

  • def 정의 함수
def plus_ten(x):
	return x + 10
    
plus_ten(10)	# 호출

 

  • 람다 표현식
plus_ten = lambda x: x + 10
plus_ten(10)	# 호출

 


주의

  • 람다 표현식 안에서는 변수를 만들어낼 수 없다.
  • 대신, 람다 표현식 바깥에 있는 변수는 사용 가능하다.

 


응용 - map(함수, 리스트)

map(함수, 리스트)함수

  • 함수와 리스트를 인자로 받는다.
  • 리스트로부터 원소를 하나씩 꺼내서 함수를 적용시킨 다음, 그 결과를 새로운 리스트에 담아준다.

 

>>> list(map(lambda x: x + 10, [1, 2, 3]))
[11, 12, 13]

응용 - sorted()

2차원 리스트를 정렬하는 sorted() 함수에서의 응용

 

sorted(반복 가능한 객체, key=정렬함수, reverse=True 혹은 False)

  • key에 정렬함수를 지정할때 lambda식을 사용
students = [
    ['john', 'C', 19],
    ['maria', 'A', 25],
    ['andrew', 'B', 7]
]

# 안쪽 리스트의 인덱스 1을 기준으로 정렬
print(sorted(students, key=lambda student: student[1]))

# 안쪽 리스트의 인덱스 2를 기준으로 정렬
print(sorted(students, key=lambda student: student[2]))

 

 

댓글