MAP은 반복연산을 수행해주는 파이썬 내장함수이다.
반복연산에는 for문, while문이 있는데
map은 그 중에서도 for문을 이용해서 자료를 다루는 것을 좀 더 간결하게 나타낼 수 있도록 한다.
map은 실질적으로 사용을 해도 안해도 크게 문제가 될 것 없이 for문으로 다 대체가 가능하다.
파이썬 내부에서 동작을 수행할 때도 for문을 쓰는거에 비해서 월등하게 더 빠르지도 않다.
Map
- key-value pair들을 저장하는 ADT
* ADP : ? - 중복된 key 값을 가지면 안됨.
Map 언제 사용할까?
1. key값와 value값을 맵핑할 때
2. 카운트할 때
https://www.youtube.com/watch?v=ZBu_slSH5Sk
MAP 사용 예시
1. 짝수 만들기
# 함수 생성
def make_even(num):
if num%2==1;
return num+1
else:
return num
x = [551, 641, 122, 234, 115]
# for문을 활용하여 결과값 출력
y = []
for num in x:
y.append(make_even(num))
print(y)
# 결과 : [552, 642, 122, 234, 116]
# map을 활용하여 결과값 출력
z = map(make_even, x)
print(z)
# 결과 : <map object at 0x7dcb48da1d50>
# 파이썬에서 자체적으로 메모리를 절약하기 위한 결과 출력 방식
print(list(z))
# 결과 : [552, 642, 122, 234, 116]
# map 출력 방식에 list로 변환하여 출력
2. 제곱 만들기
a = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
# for문 사용
a_square_for = []
for num in a:
a_square_for.append(num**2)
print("for문 사용 :", a_square_for)
# 결과 :
# for문 사용 : [4, 16, 36, 64, 100, 144, 196, 256, 324, 400]
# -------------------------------------------------------
# map 사용
a_square_map = list(map(lambda x: x**2, a))
print("map 사용 :", a_square_map)
# 결과 :
# map 사용 : [4, 16, 36, 64, 100, 144, 196, 256, 324, 400]
map(lambda x: x**2, a)
lambda x: x**2 -> 어떤 변수를 어떻게 할 것인지
a -> 어떤 리스트에 있는지
3. 지역 이름과 면적 추출하기
area = ["seoul,605", "busan,770", "daegu,884"]
names = list(map(lambda x: x.split(",")[0], area))
print(names)
# 결과 : ['seoul', 'busan', 'daegu']
areas = list(map(lambda x: x.split(",")[1], area))
print(areas)
# 결과 : ['605', '770', '884']
# areas type 확인
print(type(areas[0]))
# 결과 : <class 'str'>
# (1번) areas 형식 str -> int
areas_no1 = list(map(lambda x: int(x.split(',')[1]), area))
print(type(areas_no1[0]))
# 결과 : <class 'int'>
# (2번) areas 형식 str -> int
areas_no2 = list(map(lambda x: int(x), areas))
print(type(areas_no2[0]))
# 결과 : <class 'int'>
https://chatgpt.com/share/678d0dd4-b7e0-8005-8931-dc13f9e4dc98
728x90
'Algorithm > 알고리즘 스터디' 카테고리의 다른 글
그리디 (1) | 2025.01.26 |
---|---|
스택 Stack & 큐 Queue (1) | 2025.01.20 |
배열 Array 와 리스트 List (0) | 2025.01.20 |
디버깅 (0) | 2025.01.20 |
셋 SET (1) | 2025.01.16 |