Link Search Menu Expand Document
map()
Table of contents
  1. map()
    1. map()의 기본 구조
      1. map() 사용 예제
    2. map() 응용하기
      1. input().split()
      2. sum()

map()

map() 은 데이터를 지정된 함수로 처리해주는 파이썬 내장 함수이다. 여러 개의 데이터를 담고 있는 list나 tuple을 대상으로 모든 요소를 숫자 또는 문자 등 다른 자료형으로 형 변환하기 위해 사용한다.

map()의 기본 구조

map(변환 함수, 순회 가능한 데이터)

map 만 사용해 출력하면 아래 코드처럼 맵 객체가 만들어져 그 주소값이 출력된다. 따라서 맵 객체 안에 있는 내용을 보기 위해서는 list를 사용해야 한다.

a = [1.2, 2.5, 3.7, 4.6]
a = map(int, a)
print(a)

# <map object at 0x7fc7c673b2e0>

map() 사용 예제

  • 실수형을 정수형으로 변환

    a = [1.2, 2.5, 3.7, 4.6]
    a = list(map(int, a))
    print(a)
    
    # [1, 2, 3, 4]
    
  • 숫자를 문자열로 변환

    a = list(map(str, range(10)))
    print(a)
    
    # ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
    
  • 리스트 요소에 3씩 곱하기

    a = [3,4,5,2,4,3,5,13,91]
    
    def mul(n):
        n *=3
        return n
    
    print(list(map(mul,a)))
    
    # [9, 12, 15, 6, 12, 9, 15, 39, 273]
    

map() 응용하기

input().split()

input() 을 이용하면 유저의 입력을 받을 수 있다. input().split() 을 이용하면 공백을 기준으로 유저의 입력을 여러 개 받을 수 있다. 예를 들어, 유저가 ‘10 20’이라고 입력을 하면 가운데 공백을 기준으로 [“10”, “20”]이라는 결과를 얻을 수 있다.

a = input().split()
# 10 20 (입력)

print(a)
# ['10', '20']

지금 결과를 보는 것처럼 유저가 입력 값은 숫자일지라도 input으로 받은 값은 무조건 String 문자열 로 받게 되는데, 이때 숫자로 형변환을 쉽게 할 수 있는 방법이 바로 map() 을 이용하는 방법이다.

a = list(map(int, input().split()))
# 10 20 (입력)

print(a)
# [10, 20]

sum()

input().split()map() 의 조합에 sum() 을 이용하면 유저가 입력한 값들을 모두 한 번에 더할 수 있다.

a = sum(map(int, input().split()))
# 1 2 3 (입력)

print(a)
# 6

Page last modified: Dec 2 2020 at 12:12 AM.