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 댓글