SW/Python

Python : map() 함수 사용 방법, 예제, 명령어

얇은생각 2022. 11. 7. 07:30
반응형

map()은 주어진 반복 가능의 모든 요소에 함수를 적용하는 Python의 기본 제공 함수입니다. 루프를 사용하지 않고 간단하고 깨끗한 코드를 작성할 수 있습니다.

 

 

Python : map() 함수 사용 방법, 예제, 명령어

 

 

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() 함수는 함수와 함께 반복 가능한 개체를 가져와서 반복 가능한 각 요소에 해당 함수를 적용합니다.

반응형