2 minute read

파이썬 람다(Lambda) 함수 완벽 가이드: 익명 함수의 모든 것, 초보자도 쉽게 이해하는 방법

파이썬 람다(Lambda) 함수는 이름 없이 정의되는 익명 함수입니다. 람다 함수는 간단한 연산을 수행하는 함수를 한 줄의 코드로 작성할 수 있게 해주며, 코드의 간결성을 높이는 데 유용합니다. 이 글에서는 파이썬 람다 함수의 개념, 문법, 활용법을 예제 코드와 함께 자세히 설명합니다.

1. 람다 함수란 무엇인가?

람다 함수는 lambda 키워드를 사용하여 정의되는 익명 함수입니다. 일반적인 def 키워드를 사용하여 정의하는 함수와 달리, 이름이 없고 한 줄의 표현식으로 작성됩니다. 람다 함수는 주로 간단한 연산을 수행하거나, 다른 함수의 인자로 전달될 때 유용하게 사용됩니다.

2. 람다 함수 문법

람다 함수의 기본 문법은 다음과 같습니다.

lambda 매개변수: 표현식
  • lambda: 람다 함수를 정의하는 키워드입니다.
  • 매개변수: 함수의 입력 값을 나타냅니다. 여러 개의 매개변수를 사용할 수 있습니다.
  • 표현식: 함수의 실행 결과를 반환하는 표현식입니다.

3. 람다 함수 사용 예시

3.1. 간단한 덧셈 람다 함수

add = lambda x, y: x + y
print(add(3, 5))  # 출력: 8

3.2. 제곱 람다 함수

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

3.3. 문자열 결합 람다 함수

combine = lambda s1, s2: s1 + " " + s2
print(combine("Hello", "World"))  # 출력: Hello World

4. 람다 함수 활용

4.1. map() 함수와 함께 사용

map() 함수는 시퀀스의 각 요소에 함수를 적용하고 결과를 반환하는 함수입니다. 람다 함수를 map() 함수의 인자로 전달하여 간단하게 시퀀스의 각 요소에 연산을 적용할 수 있습니다.

numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers)  # 출력: [1, 4, 9, 16, 25]

4.2. filter() 함수와 함께 사용

filter() 함수는 시퀀스의 각 요소에 함수를 적용하고, 결과가 참(True)인 요소만 반환하는 함수입니다. 람다 함수를 filter() 함수의 인자로 전달하여 특정 조건을 만족하는 요소만 추출할 수 있습니다.

numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # 출력: [2, 4, 6]

4.3. sorted() 함수와 함께 사용

sorted() 함수는 시퀀스를 정렬하는 함수입니다. 람다 함수를 sorted() 함수의 key 매개변수에 전달하여 정렬 기준을 정의할 수 있습니다.

students = [("Alice", 80), ("Bob", 90), ("Charlie", 70)]
sorted_students = sorted(students, key=lambda student: student[1])
print(sorted_students)  # 출력: [('Charlie', 70), ('Alice', 80), ('Bob', 90)]

5. 람다 함수 사용 시 주의사항

  • 람다 함수는 한 줄의 표현식으로만 작성해야 합니다. 복잡한 로직은 일반적인 함수를 사용하는 것이 좋습니다.
  • 람다 함수는 익명 함수이므로, 재사용이 필요한 경우 일반적인 함수를 사용하는 것이 좋습니다.
  • 람다 함수는 코드의 가독성을 해칠 수 있으므로, 적절한 상황에서 사용하는 것이 중요합니다.

6. 결론

파이썬 람다 함수는 간단한 연산을 수행하는 익명 함수로, 코드의 간결성을 높이는 데 유용합니다. map(), filter(), sorted() 함수와 함께 사용하면 더욱 강력한 기능을 발휘할 수 있습니다. 람다 함수의 특징과 활용법을 익히고, 필요에 따라 적절하게 사용하여 효율적인 파이썬 코드를 작성할 수 있습니다.

Top