- 수업 내용 리마인드 및 아카이빙 목적의 업로드
파이썬에는 코드의 간결함과 유연성을 높여주는 다양한 기능들이 있어요. 오늘은 그중에서도 람다 함수(lambda), defaultdict, 그리고 map 함수를 통해 코드를 더 효율적으로 작성하는 방법을 소개할게요. 이 세 가지는 간단하면서도 매우 강력한 기능들이죠!
1. Lambda 함수: 익명 함수의 마법
람다 함수(lambda)는 이름 없는, 일회성으로 사용할 수 있는 익명 함수입니다. 주로 짧고 간단한 작업에 많이 사용되며, 한 줄로 함수를 정의할 수 있다는 장점이 있어요.
1) 파라미터가 없는 함수
# 일반 함수
def say_hello():
return "Hello, World!"
print(say_hello()) # 결과: Hello, World!
# 람다 함수
say_hello_lambda = lambda: "Hello, World!"
print(say_hello_lambda()) # 결과: Hello, World!
람다 함수는 매우 간단하게 작성할 수 있습니다. 함수의 역할이 단순할수록 람다 함수의 장점이 더 부각되죠.
2) 파라미터가 1개인 함수
# 제곱 계산
square_lambda = lambda x: x ** 2
print(square_lambda(5)) # 결과: 25
# 문자열 길이 반환
string_length_lambda = lambda s: len(s)
print(string_length_lambda("Lambda")) # 결과: 6
람다 함수는 파라미터가 한 개일 때도 간결하게 작성할 수 있어요. 이런 경우 복잡한 함수 대신 람다 함수로 간단하게 처리할 수 있습니다.
3) 파라미터가 2개인 함수
# 두 값의 합 계산
add_lambda = lambda x, y: x + y
print(add_lambda(3, 4)) # 결과: 7
# 두 문자열 결합
concat_strings_lambda = lambda s1, s2: s1 + " " + s2
print(concat_strings_lambda("Hello", "World")) # 결과: Hello World
람다 함수는 여러 개의 파라미터도 쉽게 처리할 수 있어요. 두 값을 더하거나, 문자열을 결합하는 작업도 한 줄로 간단하게 해결할 수 있습니다.
2. defaultdict: 기본값을 자동으로 설정하는 딕셔너리
defaultdict는 기본값을 자동으로 제공해주는 딕셔너리입니다. 일반 딕셔너리와 달리, 존재하지 않는 키에 접근할 때도 오류가 발생하지 않고 미리 지정한 기본값을 반환합니다.
1) 기본 딕셔너리와의 차이
# 기존 딕셔너리
d = {}
try:
d['a'] += 1 # KeyError 발생
except KeyError:
print("KeyError: 'a' 키가 존재하지 않습니다.")
기본 딕셔너리는 키가 없을 때 오류가 발생하지만, defaultdict는 기본값을 자동으로 반환해주죠.
2) defaultdict 사용
from collections import defaultdict
# 기본값이 0인 defaultdict
d = defaultdict(int)
d['a'] += 1
print(dict(d)) # 결과: {'a': 1}
# 람다로 초기화, 기본값이 인덱스로 설정됨
d = defaultdict(lambda: len(d) + 1)
print(d['key1']) # 결과: 1
print(d['key2']) # 결과: 2
print(dict(d)) # 결과: {'key1': 1, 'key2': 2}
defaultdict는 키가 없을 때도 기본값을 자동으로 제공해줘서 코드의 간결함과 오류 방지에 큰 도움이 됩니다.
3. map 함수: 여러 값을 한 번에 처리
map 함수는 주어진 함수와 반복 가능한 객체(리스트, 튜플 등)를 받아 각 요소에 함수를 적용한 결과를 반환하는 함수입니다. 반복적인 계산을 매우 간결하게 처리할 수 있어요.
1) 기본적인 map 함수 사용
# 리스트의 각 요소를 제곱
numbers = [1, 2, 3, 4]
squared = map(lambda x: x ** 2, numbers)
print(list(squared)) # 결과: [1, 4, 9, 16]
map 함수는 리스트의 각 요소에 람다 함수를 적용해 각 요소의 제곱을 계산합니다.
2) 두 개의 리스트를 동시에 처리
# 두 리스트의 요소를 더함
numbers1 = [1, 2, 3]
numbers2 = [4, 5, 6]
summed = map(lambda x, y: x + y, numbers1, numbers2)
print(list(summed)) # 결과: [5, 7, 9]
map 함수는 두 개 이상의 리스트를 동시에 처리할 수 있습니다. 두 리스트의 요소를 순서대로 더해줍니다.
3) 리스트의 각 요소를 조합
# 두 리스트의 요소를 튜플로 묶음
numbers1 = [[1, 2, 3], [4, 5, 6]]
result = map(lambda x, y: (x, y), numbers1[0], numbers1[1])
print(list(result)) # 결과: [(1, 4), (2, 5), (3, 6)]
이 코드에서는 두 리스트의 각 요소를 튜플로 묶어주는 예시입니다. map을 사용하면 반복적인 작업을 매우 간단하게 처리할 수 있죠.
오늘은 파이썬의 세 가지 유용한 기능인 람다 함수(lambda), defaultdict, 그리고 map 함수에 대해 알아봤어요. 이 기능들은 코드를 더 간결하게 작성할 수 있게 도와주며, 특히 반복 작업이나 기본값 처리를 할 때 큰 도움이 됩니다.
- Lambda 함수는 간단한 함수들을 한 줄로 작성할 수 있어요.
- defaultdict는 기본값을 자동으로 설정해줍니다.
- map 함수는 리스트나 다른 반복 가능한 객체의 요소에 쉽게 함수를 적용할 수 있어요.
'+ 개발' 카테고리의 다른 글
토픽 모델링(Topic Modeling)의 이해와 활용 (0) | 2024.09.12 |
---|---|
리스트 컴프리헨션(List Comprehension) (0) | 2024.09.11 |
단어 임베딩을 활용한 유사도 계산 (0) | 2024.09.09 |
문서 표현 기법(ft. Scikit-learn & Gensim) (1) | 2024.09.08 |
N-gram: 텍스트에서 문맥 파악하기 (5) | 2024.09.07 |