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 함수를 지정
구체적인 동작
- lambda x: (len(x), x): lambda 함수는 각 단어 x를 (len(x), x) 형태의 튜플로 변환
- len(x)는 단어의 길이
- x는 단어 자체
- 정렬 기준: 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 |
---|