반응형
map() 함수와 lambda 함수
파이썬 내장 함수로 특정 요소를 특정 함수로 매핑(mapping) 시킬때 사용한다.
실수가 들어있는 리스트의 값을 정수로 변환하는 프로그램을 가정해보자.
아래와 같이 리스트이 각 요소를 정수화한 후 다시 리스트에 담아야 한다.
num_list=[1.5, 2.3, 3.7, 4.1]
print(type(num_list))
print(num_list)
for i in range(len(num_list)):
num_list[i] = int(num_list[i])
print(num_list)
이것을 map을 사용하면 다음과 같이 간략화 할 수 있다.
num_list=[1.5, 2.3, 3.7, 4.1]
num_list = list(map(int, num_list))
print(num_list)
즉, map함수를 통해 num_list을 int화 매핑한 후 list를 생성하는 것이다.
아래의 예제는 numbers 리스트의 모든 요소에 대해 square() 함수 매핑한다.
따라서, 각숫자가 제곱이 될 것이고 이것들이 squared_numbers 리스트에 저장될 것이다.
numbers = [1, 2, 3, 4, 5]
def square(x):
return x * x
squared_numbers = map(square, numbers)
print(list(squared_numbers))
# 출력 결과: [1, 4, 9, 16, 25]
람다(lambda) 함수
이를 람다(lambda) 함수를 사용하면 더 간략화 할 수 있다.
람다 함수는 함수 이름을 정의하지 않도 함수 기능을 한 줄로 작성할 수 있다.
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x*x, numbers)
print(list(squared_numbers))
# 출력 결과: [1, 4, 9, 16, 25]
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = map(lambda x, y: x + y, list1, list2)
print(list(result))
# 출력 결과: [5, 7, 9]
이것을 람다함수를 사용하지 않으면 원래 다음과 같은 형태일 것이다.
def add(x, y):
return x + y
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = map(add, list1, list2)
print(list(result))
# 출력 결과: [5, 7, 9]
공백분리 입력 받기
a, b, c = map(int, input().split()) #공백분리 입력 받기
print(a, b, c)
결과
1 2 3
1 2 3
반응형
'파이썬(Python)' 카테고리의 다른 글
BeautifulSoup, requests 활용 웹크롤링(Web Crawling) (0) | 2023.03.13 |
---|---|
파이썬 메모이제이션 (Python memoization) (0) | 2023.03.12 |
파이썬 리스트(List) vs 튜플(Tuple) vs 딕셔너리(Dictionary) vs 집합(Set) (0) | 2023.03.09 |
파이썬의 내장함수(Built-in Functions) (0) | 2023.03.09 |
파이썬(Python) 기본 문법 (0) | 2023.03.09 |
댓글