Python map() 함수 사용법 및 예제
⚡ 스마트 요약
Python `map()` 메서드는 리스트, 튜플, 세트, 딕셔너리, 문자열과 같은 반복 가능한 객체의 모든 항목에 지정된 함수를 적용합니다. 이 메서드는 지연 평가된 맵 객체를 반환하며, 이 객체를 `list()` 메서드로 변환하거나 반복문을 사용하여 순회할 수 있습니다.
통사론
map(function, iterator1,iterator2 ...iteratorN)
파라미터
다음은 두 가지 중요한 매개변수입니다.
- 기능: map() 메서드에 반드시 전달해야 하는 함수이며, 이 함수는 이터레이터에 있는 모든 항목에 적용됩니다.
- 반복자: 필수적으로 전달해야 하는 반복 가능한 객체입니다. 리스트, 튜플 등이 될 수 있습니다. map() 함수에는 여러 개의 반복자 객체를 전달할 수 있습니다.
반환 값
`map()` 함수는 반복자 내의 모든 항목에 주어진 함수를 적용하고 반복 가능한 맵 객체(예: 튜플, 리스트 등)를 반환합니다.
map() 함수는 어떻게 작동하나요?
map() 함수는 함수와 반복 가능한 객체, 이렇게 두 개의 입력을 받습니다. map() 함수에 전달되는 함수는 일반 함수이며, 반복 가능한 객체에 있는 모든 값을 순회합니다.
예를 들어, 숫자 목록이 있고 각 숫자의 제곱을 구하려고 한다고 가정해 보겠습니다.
원하는 결과를 얻으려면 주어진 숫자의 제곱을 반환하는 함수가 필요합니다. 함수는 다음과 같습니다.
def square(n): return n*n
우리가 제곱수를 구하고자 하는 항목 목록은 다음과 같습니다.
my_list = [2,3,4,5,6,7,8,9]
이제 내장 함수인 map()을 사용하여 my_list에 있는 각 항목의 제곱을 구해 보겠습니다.
최종 코드는 다음과 같습니다.
def square(n): return n*n my_list = [2,3,4,5,6,7,8,9] updated_list = map(square, my_list) print(updated_list) print(list(updated_list))
출력:
<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]
위에서 볼 수 있듯이 map() 함수의 출력은 화면에 표시되는 지도 객체입니다. .
최종 결과를 얻으려면 for 루프나 list() 메서드를 사용하여 map() 함수의 출력을 반복해야 합니다. 코드에서는 주어진 리스트 안의 값들을 표시하기 위해 list() 메서드를 사용했습니다.
map() 함수를 사용하면 각 숫자의 제곱을 구할 수 있습니다. map() 함수에 전달된 리스트는 [2, 3, 4, 5, 6, 7, 8, 9]이고, square() 함수를 사용하면 [4, 9, 16, 25, 36, 49, 64, 81]이 출력됩니다.
`map()` 함수는 리스트의 모든 항목에 `square()` 함수를 적용합니다. 예를 들어, `my_list` 변수를 가져와 각 숫자의 제곱으로 리스트를 업데이트합니다. 결과는 `updated_list` 변수에 저장됩니다.
map()을 사용하여 Python 내장 기능
The Python map() 함수는 내장 함수이며 다음에서 사용 가능한 다른 내장 함수와 함께 사용할 수도 있습니다. Python이 예시에서는 다음을 활용할 것입니다. Python round()는 주어진 값을 반올림하는 내장 함수입니다.
예:
제가 가진 리스트는 my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]입니다. 리스트의 각 항목에 대해 반올림된 값이 필요하므로, map() 함수로 round()를 사용하겠습니다.
my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907] updated_list = map(round, my_list) print(updated_list) print(list(updated_list))
출력:
<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]
round() 함수는 리스트의 모든 항목에 적용되며, 출력에서 볼 수 있듯이 모든 값이 반올림된 리스트를 반환합니다.
문자열을 반복자로 map() 사용하기
문자열에 대해 map()을 사용할 수도 있습니다. ~ 안에 Python문자열은 배열처럼 동작하므로 map() 함수 안에서 쉽게 사용할 수 있습니다.
이 예제에서는 주어진 문자열을 대문자로 변환하는 myMapFunc() 함수가 있습니다. 이 myMapFunc() 함수는 map() 함수에 전달됩니다. map() 함수는 해당 문자열을 myMapFunc() 함수에 전달하여 대문자로 변환합니다.
def myMapFunc(s): return s.upper() my_str = "welcome to guru99 tutorials!" updated_list = map(myMapFunc, my_str) print(updated_list) for i in updated_list: print(i, end="")
출력:
<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!
리스트를 사용하여 map() 함수 사용하기 Numbers
map() 함수에서 리스트를 다루려면 숫자 리스트를 가져와서 리스트의 각 숫자에 10을 곱해 보겠습니다.
우리가 사용할 리스트는 [2,3,4,5,6,7,8,9]입니다. myMapFunc() 함수는 주어진 숫자에 10을 곱하는 역할을 합니다. 이 함수는 리스트와 함께 map() 함수에 전달됩니다.
예:
def myMapFunc(n): return n*10 my_list = [2,3,4,5,6,7,8,9] updated_list = map(myMapFunc, my_list) print(updated_list) print(list(updated_list))
출력:
<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]
출력 결과는 목록에 있는 각 숫자가 10으로 곱해지는 것을 보여줍니다.
Tuple과 함께 map() 사용하기
튜플은 다음의 객체입니다. Python 쉼표로 구분되고 괄호로 묶인 항목들로 구성된 튜플을 사용합니다. 이 예제에서는 문자열 값으로 이루어진 튜플을 사용하겠습니다. 사용할 함수는 주어진 값을 대문자로 변환합니다.
예:
def myMapFunc(n): return n.upper() my_tuple = ('php','java','python','c++','c') updated_list = map(myMapFunc, my_tuple) print(updated_list) print(list(updated_list))
출력:
<map object at 0x0000009C3C3A16A0> ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']
출력 결과는 모든 값이 대문자로 변환된 튜플입니다.
사전과 함께 map() 사용
A 사전 Python 딕셔너리는 중괄호({})를 사용하여 생성됩니다. 딕셔너리는 이터레이터이므로 map() 함수 내부에서 사용할 수 있습니다. 이제 map() 함수 내부에서 딕셔너리를 이터레이터로 사용하는 방법을 살펴보겠습니다.
다음 예제는 map() 함수 내부에서 딕셔너리 이터레이터가 작동하는 방식을 보여줍니다.
def myMapFunc(n): return n*10 my_dict = {2,3,4,5,6,7,8,9} finalitems = map(myMapFunc, my_dict) print(finalitems) print(list(finalitems))
출력:
<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Set과 함께 map() 사용하기
세트 Python set()은 중괄호({}) 안에 있는 항목들의 순서 없는 컬렉션입니다. set()은 이터레이터이기도 하므로 map() 함수 내에서 사용할 수 있습니다.
다음은 map() 메서드 내에서 세트를 이터레이터로 사용하는 작동 예시입니다.
def myMapFunc(n): return n*10 my_set = {2,3,4,5,6,7,8,9} finalitems = map(myMapFunc, my_set) print(finalitems) print(list(finalitems))
출력:
<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Lambda 함수와 함께 map() 사용
In Python, 람다 표현식은 익명 함수를 구성하는 데 사용됩니다. 일반 함수를 정의하기 위해 def를 사용하는 것처럼 람다 키워드를 사용해야 합니다.
이 예제에서는 map() 함수 안에 람다 함수를 사용할 것입니다. 람다 함수는 리스트의 각 값에 10을 곱합니다.
예:
my_list = [2,3,4,5,6,7,8,9] updated_list = map(lambda x: x * 10, my_list) print(updated_list) print(list(updated_list))
출력:
<map object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]
map() 함수 내에서 여러 개의 이터레이터 사용하기
예제 1: map() 함수에 두 개의 리스트 이터레이터를 전달하는 방법
map() 함수에는 리스트, 튜플 등 여러 개의 이터레이터를 동시에 전달할 수 있습니다.
예를 들어, 두 개의 리스트를 더하고 싶다면 map() 함수를 사용하면 됩니다. 우리는 my_list1과 my_list2라는 두 개의 리스트를 사용할 것입니다.
아래 예시에서는 my_list1의 첫 번째 항목에 my_list2의 첫 번째 항목을 더합니다. myMapFunc() 함수는 my_list1과 my_list2의 항목을 입력받아 두 항목의 합계를 반환합니다.
다음은 map() 함수를 사용하여 주어진 두 리스트를 더하는 예제입니다.
def myMapFunc(list1, list2): return list1+list2 my_list1 = [2,3,4,5,6,7,8,9] my_list2 = [4,8,12,16,20,24,28] updated_list = map(myMapFunc, my_list1,my_list2) print(updated_list) print(list(updated_list))
출력:
<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]
예제 2: map()에 튜플 하나와 리스트 이터레이터를 전달하는 경우
map() 함수에서 리스트와 튜플 이터레이터를 사용할 것입니다. map() 함수에 전달되는 myMapFunc() 함수는 리스트와 튜플에서 항목들을 가져옵니다. 항목들은 밑줄(_)로 연결되어 있습니다. 아래에 작동 예시가 나와 있습니다.
def myMapFunc(list1, tuple1): return list1+"_"+tuple1 my_list = ['a','b', 'b', 'd', 'e'] my_tuple = ('PHP','Java','Python','C++','C') updated_list = map(myMapFunc, my_list,my_tuple) print(updated_list) print(list(updated_list))
출력:
<map object at 0x00000059F37BB4E0> ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']

