[Python] 람다(lambda)함수 마스터하기

PhilAI·2023년 8월 1일
0

람다(lambda)는 코딩 테스트 및 프로그래밍에서 많이 사용되는 개념 중 하나입니다. 람다는 간단하면서도 강력한 함수를 생성할 수 있는 기능으로, 주로 함수형 프로그래밍 패러다임을 지원하는 언어에서 자주 사용됩니다. 여기서는 람다 함수가 코딩 테스트에서 어떻게 활용되는지와 관련하여 설명드리겠습니다.

람다(lambda)함수 간단 정리

람다 함수는 익명 함수로, 이름 없이 정의되는 함수를 말합니다.
보통 한 줄로 간결하게 표현되며, 주로 함수의 인자로 넘기거나 간단한 연산을 수행하는 데 사용됩니다. 주로 함수 정의를 간략하게 나타내기 위해 사용되며, 즉석에서 사용하고 버릴 함수가 필요한 경우 유용합니다.

lambda 매개변수들: 표현식
  • lambda: 람다 함수를 정의하는 예약어입니다.
  • 매개변수들: 람다 함수의 입력 매개변수들입니다. 0개 이상의 매개변수를 가질 수 있습니다.
  • 표현식: 람다 함수의 반환값을 계산하는 표현식입니다.

람다(lambda)함수 활용 예시

1. 리스트 정렬하기

sorted() 함수를 사용하여 리스트를 길이에 따라 오름차순으로 정렬하는 예제입니다.

일반 함수 사용

def get_length(word):
    return len(word)

words = ["apple", "banana", "cherry", "date"]
sorted_words = sorted(words, key=get_length)
print(sorted_words)  # 출력: ['date', 'apple', 'banana', 'cherry']

람다 함수 사용

words = ["apple", "banana", "cherry", "date"]
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words)  # 출력: ['date', 'apple', 'banana', 'cherry']

2. 조건부 함수 만들기

람다 함수를 사용하여 짝수와 홀수를 구분하는 예제입니다.

일반 함수 사용

def is_even(number):
    return number % 2 == 0

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
even_numbers = list(filter(is_even, numbers))
print(even_numbers)  # 출력: [2, 4, 6, 8]

람다 함수 사용

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

3. 리스트 컴프리헨션과 함께 사용하기

람다 함수를 사용하여 리스트 컴프리헨션으로 새로운 리스트를 생성하는 예제입니다.

일반 함수 사용

def square(number):
    return number ** 2

numbers = [1, 2, 3, 4, 5]
squared_numbers = [square(x) for x in numbers]
print(squared_numbers)  # 출력: [1, 4, 9, 16, 25]

람다 함수 사용

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

4. map 함수와 함께 사용하기

map() 함수를 사용하여 리스트의 모든 요소를 제곱하는 예제입니다.

일반 함수 사용

def square(number):
    return number ** 2

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

람다 함수 사용

numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers)  # 출력: [1, 4, 9, 16, 25]
profile
철학과가 도전하는 Big Data, AI

0개의 댓글