Algorithm/기본 지식

lambda 함수란?

Albosa2lol 2024. 7. 26. 15:22

lambda 함수란?

 

lambda 함수는 파이썬에서 익명 함수(이름이 없는 함수)를 생성하기 위해 사용된다. lambda 함수는 간단한 함수를 정의할 때 유용하다

 

일반 함수와 lambda 함수의 차이는 다음과 같다:

  • 일반 함수는 def 키워드를 사용하여 정의되며, 이름이 있다.
  • lambda 함수는 lambda 키워드를 사용하여 정의되며, 이름이 없다.

람다 함수 문법은

lambda 인자들: 표현식
  • 인자들: 함수가 받을 인자들
  • 표현식: 함수가 반환할 값

 

ex)

# 일반 함수
def add(x, y):
    return x + y

# lambda 함수
add_lambda = lambda x, y: x + y

# 사용
print(add(2, 3))        # 출력: 5
print(add_lambda(2, 3)) # 출력: 5

 

 

sort 메소드와 key 매개변수

리스트의 sort 메소드는 리스트를 정렬하는 데 사용된다. sort 메소드는 key 매개변수를 받을 수 있는데, key는 각 리스트 요소를 비교하기 전에 호출할 함수를 지정한다.

 

# 리스트 정렬
numbers = [5, 2, 9, 1, 5, 6]

# 기본 정렬
numbers.sort()
print(numbers)  # 출력: [1, 2, 5, 5, 6, 9]

# `key`를 사용한 정렬
numbers.sort(key=lambda x: -x)
print(numbers)  # 출력: [9, 6, 5, 5, 2, 1]

 

 

 

 

 

 

https://dilution0216.tistory.com/232 문제에서 unique_words.sort(key=lambda x: (len(x), x)) 코드 설명

 

unique_words 리스트를 정렬하기 위해 sort 메소드를 사용하는데, 여기서 key 매개변수로 lambda 함수를 지정

 

구체적인 동작

  1. lambda x: (len(x), x): lambda 함수는 각 단어 x를 (len(x), x) 형태의 튜플로 변환
    • len(x)는 단어의 길이
    • x는 단어 자체
  2. 정렬 기준: sort 메소드는 (len(x), x) 튜플을 기준으로 정렬
    • 첫 번째 기준: 단어의 길이 (len(x))
    • 두 번째 기준: 단어 자체 (x)
    • 즉, 단어의 길이를 우선적으로 비교하고, 길이가 같으면 단어 자체를 비교하여 사전 순으로 정렬

unique_words.sort(key=lambda x: (len(x), x)) 코드는 주어진 단어 리스트를 단어 길이의 오름차순으로 정렬하되, 길이가 같은 단어는 사전 순으로 정렬하는 작업을 수행한다.

 

 

번외 예제

 

words = ["apple", "banana", "cherry", "date"]

# 정렬 전
print(words)  # 출력: ['apple', 'banana', 'cherry', 'date']

# 정렬
words.sort(key=lambda x: (len(x), x))

# 정렬 후
print(words)  # 출력: ['date', 'apple', 'banana', 'cherry']

 

  • "date" (길이 4)
  • "apple" (길이 5)
  • "banana" (길이 6)
  • "cherry" (길이 6, 사전 순서가 "banana" 다음)

 

 

'Algorithm > 기본 지식' 카테고리의 다른 글

Python 입출력 정리  (0) 2024.07.17