[python] map() 함수, 여러 데이터를 한 번에 형태 변환

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

파이썬의 내장 함수인 map()는 여러 개의 데이터를 한 번에 다른 형태로 변환하기 위해서 사용됩니다. 따라서, 여러 개의 데이터를 담고 있는 list나 tuple을 대상으로 주로 사용하는 함수입니다.



🧩1. 일반 함수를 통한 map() 형변환

map(함수, 리스트 or 듀플 등)

  • 성과 이름을 분리하는 conver_to_name() 함수를 정의합니다. 
  • map(함수, 리스트) 에 각각  함수 conver_to_name 와 리스트 users 를 인자로 전달합니다.
users = [{'mail': 'gregorythomas@gmail.com', 'name': 'Brett Holland', 'sex': 'M'},
 {'mail': 'hintoncynthia@hotmail.com', 'name': 'Madison Martinez', 'sex': 'F'},
 {'mail': 'wwagner@gmail.com', 'name': 'Michael Jenkins', 'sex': 'M'},
 {'mail': 'daniel79@gmail.com', 'name': 'Karen Rodriguez', 'sex': 'F'},
 {'mail': 'ujackson@gmail.com', 'name': 'Amber Rhodes', 'sex': 'F'}]

def conver_to_name(user):
    first, last = user["name"].split()
    return {"first": first, "last": last}

for name in map(conver_to_name, users):
    print(name)

🧩2. 람다 표현식을 통한  map() 형변환

map(람다 표현식, 리스트 or 튜플 등)

  • 람다 표현식은 lamda 인자 : 표현식 으로 이루어진다. 즉, 표현식에서 계산(가공)된 값을 인자로 돌려줍니다. 
lambda u: "남" if u["sex"] == "M" else "여"
  • map() 함수와 함께 사용하면 아래와 같습니다. 
users = [{'mail': 'gregorythomas@gmail.com', 'name': 'Brett Holland', 'sex': 'M'},
 {'mail': 'hintoncynthia@hotmail.com', 'name': 'Madison Martinez', 'sex': 'F'},
 {'mail': 'wwagner@gmail.com', 'name': 'Michael Jenkins', 'sex': 'M'},
 {'mail': 'daniel79@gmail.com', 'name': 'Karen Rodriguez', 'sex': 'F'},
 {'mail': 'ujackson@gmail.com', 'name': 'Amber Rhodes', 'sex': 'F'}]

for gender in map(lambda u: "남" if u["sex"] == "M" else "여", users):
    print(gender)

추가 참고 자료

파이썬 map 내장 함수 사용법 (feat. List Comprehension) 을 참고했습니다..

댓글 쓰기

0 댓글