Python map() 함수 사용법 및 예제

⚡ 스마트 요약

Python `map()` 메서드는 리스트, 튜플, 세트, ​​딕셔너리, 문자열과 같은 반복 가능한 객체의 모든 항목에 지정된 함수를 적용합니다. 이 메서드는 지연 평가된 맵 객체를 반환하며, 이 객체를 `list()` 메서드로 변환하거나 반복문을 사용하여 순회할 수 있습니다.

  • 🔢 구문 : map() 함수는 함수와 하나 이상의 반복 가능한 객체를 인수로 받아 해당 함수를 각 요소에 적용합니다.
  • 🔁 반환 값 : `map()` 메서드는 지연 평가되는 맵 객체를 반환하므로 결과를 보려면 `list()`, `tuple()` 또는 `set()` 메서드로 감싸야 합니다.
  • 🧩 반복 가능한 객체: 리스트, 튜플, 세트, ​​딕셔너리, 문자열은 모두 map() 함수의 입력으로 사용할 수 있습니다.
  • 람다: `map()` 함수와 람다식을 함께 사용하면 간단한 변환을 위해 별도의 명명된 함수를 정의할 필요가 없습니다.
  • 여러 개의 반복 가능한 객체: 여러 개의 반복 가능한 객체를 전달하면 함수가 모든 객체에 병렬로 적용됩니다.ping 가장 짧은 시간 안에.
  • 🤖 AI 지원: GitHub Copilot과 같은 AI 비서는 map() 호출을 생성하고, 지도 스타일 변환은 머신 러닝의 데이터 파이프라인에 입력됩니다.

Python 지도() 함수

통사론

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']

자주 묻는 질문

둘 다 각 항목에 연산을 적용합니다. 리스트 컴프리헨션은 종종 가독성이 더 좋고 리스트를 직접 반환하는 반면, `map()`은 지연 평가되는 맵 객체를 반환하며 기존의 명명된 함수를 재사용할 때 더 빠를 수 있습니다.

아니요. `map()` 메서드는 원래의 반복 가능한 객체를 절대 변경하지 않습니다. 각 요소를 읽고, 사용자가 지정한 함수를 적용한 다음, 원본 리스트, 튜플 또는 문자열을 그대로 둔 채 새로운 지연 평가 방식의 `map` 객체를 생성합니다.

In Python 3. `map()`은 지연 평가 방식입니다. 즉, 반복할 때만 값을 계산하는 `map` 객체를 반환합니다. 이는 대용량 데이터 처리 시 메모리 사용량을 줄여줍니다. 결과를 얻으려면 `list()`로 감싸거나 반복문을 사용하여 처리하세요.

`map()` 함수는 모든 항목을 변환하고, `filter()` 함수는 조건을 만족하는 항목만 남기며, `reduce()` 함수(functools 패키지 제공)는 모든 항목을 하나의 값으로 결합합니다. 이 세 함수를 통해 변환, 선택 및 집계 작업을 수행할 수 있습니다.

반복 가능한 객체의 길이가 서로 다를 경우, map() 메서드는 가장 짧은 객체에서 멈춥니다. 길이가 더 긴 객체의 추가 항목은 무시되므로 오류가 발생하지 않고 결과는 가장 짧은 객체와 일치합니다.

아니요. 맵 객체는 한 번 순회하면 더 이상 사용되지 않는 이터레이터입니다. 반복문을 사용하거나 `list()`를 호출하면 비어 있게 됩니다. 재사용하려면 먼저 리스트로 변환해야 합니다.

머신러닝에서 `map()` 함수는 숫자 스케일링, 텍스트 토큰화, 학습 전 특징 변환과 같은 전처리 기능을 데이터셋 전체에 적용합니다. 이를 통해 여러 샘플에 동일한 연산을 깔끔하고 효율적인 방식으로 실행할 수 있습니다.

네. GitHub Copilot은 map() 호출을 올바른 함수와 반복 가능한 객체로 자동 완성해 주고, 에이전트형 AI 도구는 반복문을 map() 표현식으로 리팩토링한 다음 테스트를 실행하여 동작이 변경되지 않았는지 확인할 수 있습니다.

이 게시물을 요약하면 다음과 같습니다.