map()은 주어진 반복 가능의 모든 요소에 함수를 적용하는 Python의 기본 제공 함수입니다. 루프를 사용하지 않고 간단하고 깨끗한 코드를 작성할 수 있습니다.
Python map() 함수
map() 함수는 다음과 같은 형식을 취합니다.
map(function, iterable, ...)
다음 두 가지 필수 인수를 사용할 수 있습니다.
function - 반복 가능한 모든 요소에 대해 호출되는 함수입니다.
iterable - 반복을 지원하는 하나 이상의 개체입니다. 목록, 사전 및 튜플과 같은 Python의 기본 제공 개체는 대부분 반복 가능합니다.
Python 3에서 map()은 전달된 반복 가능한 개체와 크기가 동일한 맵 개체를 반환합니다. python 2에서는 함수가 목록을 반환합니다.
이제 map() 함수의 작동 방식을 더 잘 설명하기 위한 예를 살펴보겠습니다. 문자열 목록이 있고 목록의 각 요소를 대문자로 변환하려고 합니다.
이를 위한 한 가지 방법은 기존의 for 루프를 사용하는 것입니다.
directions = ["north", "east", "south", "west"]
directions_upper = []
for direction in directions:
d = direction.upper()
directions_upper.append(d)
print(directions_upper)
# ['NORTH', 'EAST', 'SOUTH', 'WEST']
map() 함수를 사용하면 코드가 훨씬 간단하고 유연해집니다.
list() 생성자를 사용하여 반환된 맵 개체를 목록으로 변환합니다.
def to_upper_case(s):
return s.upper()
directions = ["north", "east", "south", "west"]
directions_upper = map(to_upper_case, directions)
print(list(directions_upper))
# ['NORTH', 'EAST', 'SOUTH', 'WEST']
콜백 함수가 단순하다면 람다 함수를 사용하는 것이 더 피톤적인 방법입니다.
directions = ["north", "east", "south", "west"]
directions_upper = map(lambda s: s.upper(), directions)
print(list(directions_upper))
람다 함수는 작은 익명 함수입니다.
다음은 1에서 10까지의 정사각형 숫자 목록을 만드는 방법을 보여 주는 또 다른 예입니다.
squares = map(lambda n: n*n , range(1, 11))
print(list(squares))
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
range() 함수는 정수 시퀀스를 생성합니다.
다중 반복 가능과 함께 map()을 사용
map() 함수에 원하는 만큼의 반복 가능 파일을 전달할 수 있습니다. 콜백 함수가 받아들이는 필수 입력 인수 수는 반복 가능 수와 같아야 합니다.
다음 예제에서는 두 목록에서 요소별 곱셈을 수행하는 방법을 보여 줍니다.
def multiply(x, y):
return x * y
a = [1, 4, 6]
b = [2, 3, 5]
result = map(multiply, a, b)
print(list(result))
# [2, 12, 30]
동일한 코드이지만 람다 함수를 사용하면 다음과 같이 표시됩니다.
a = [1, 4, 6]
b = [2, 3, 5]
result = map(lambda x, y: x*y, a, b)
print(list(result))
여러 반복 가능이 제공된 경우 반환되는 개체의 크기는 가장 짧은 반복 가능 크기와 동일합니다.
이제 반복 파일의 길이가 같지 않은 예를 보겠습니다.
a = [1, 4, 6]
b = [2, 3, 5, 7, 8]
result = map(lambda x, y: x*y, a, b)
print(list(result))
# [2, 12, 30]
초과 요소(7 및 8)는 무시됩니다.
Python의 map() 함수는 함수와 함께 반복 가능한 개체를 가져와서 반복 가능한 각 요소에 해당 함수를 적용합니다.
'SW > Python' 카테고리의 다른 글
Python : 현재 작업 디렉토리 확인, 변경 방법, 예제, 명령어 (0) | 2022.12.20 |
---|---|
Python : List : 역방향, 뒤집기 방법, 예제, 명령어 (0) | 2022.12.05 |
Python : Comment 사용 방법, 예제, 명령어 (0) | 2022.10.27 |
Python : JSON 데이터 파싱 방법, 예제, 명령어 (0) | 2022.10.20 |
Python : Modulo Operator : 나머지 연산자 사용 방법, 예제, 명령어 (0) | 2022.10.15 |