컴퓨터공학 💻 도서관📚
map함수는 이름이 왜 map함수인가??? 본문
파이썬에는 map함수라는 함수가 존재한다.
map함수는 다음과 같은 형태를 가진다.
map(funtion, iterable)
function : 각 요소에 적용할 함수입니다.
iterable : 함수를 적용할 데이터 집합입니다.
map() 함수는 iterable의 각 요소에 대해 function 함수를 적용한 결과를 새로운 iterator로 반환한다.
(iterate : 반복하다)
map(A, B) : B의 각 요소에 A함수를 적용하라
map 함수가 실행되면 반복가능한 객체를 첫 번째 인자인 함수에 하나씩 요소를 넣어 함수를 수행한다.
이후 해당 함수가 반환된 값을 map 객체의 형태로 반환한다.
자료형태가 map함수이기 때문에 실제 값을 확인하기 위해서 list, tuple과 같은 형태로 변환 시켜주어야한다.
예를 들면
test = [2, 3, 4, 5]
test_list = list(map(float, test) #이렇게 말이다.
print(test_list)
map함수는 코드의 가독성을 높여주며 효율성을 높여준다.
test = [2, 3, 4, 5]
test_list = []
for i in test:
i = float(i)
test_list.append(i)
print(test_list)
test = [2, 3, 4, 5]
test_list = list(map(float, test) #위의 코드를 굉장히 간추렸음을 알 수 있다.
print(test_list)
자, 이제부터 오늘 이 글을 쓴 목적에 대해 이야기해보려 한다.
위에서 설명한 map함수의 기능을 배우고 필자는 그게 map이라는 단어와 무슨 상관이 있는지 궁금했었다.
필자가 알고 있는 map의 사전적 의미는 '지도'인데
map함수의 기능은 지도와는 전혀 관련이 없어보였기 때문이다.
처음 map함수에 대해 배웠을 때는 그냥 그런가 보다 하고 그냥 외웠다.
근데 시간이 지나면서 map함수를 은근 자주 만났고 그때마다 자꾸 map함수가 눈에 밟혔다.
그리고 map함수를 만날 때마다 이 생각이 내 머릿속을 떠나지 않았다.
저건.... 대체 왜 이름이 map일까?
그래서 map함수를 알게 된지 거진 2년만에 map함수의 이름의 유래를 찾아보게 되었다.
찾아본 결과 이름의 유래는 수학에서 왔다는 것을 알 수 있었다.
집합론에서 나오는 사상(Mapping)이라는 개념이었다.
사상의 사전적 정의는 다음과 같다.
두 집합 X,Y가 존재할 때, 집합 X의 각원소 x를 집합 Y의 하나의 원소 y로 대응시키는 관계를 말한다.
사상, 대응, 변환 또는 함수라고도 한다.
X도 Y도 수일 때가 통상적인 뜻으로서의 함수이고, X에서 X 위로의 사상을 특히 변환이라고 할 때가 많다.
즉, map함수에서 iteravle한 객체를 functoin에 하나씩 넣는 것처럼, 이 둘을 대응시켰던 것처럼
수학에서의 mapping도 두 집합의 각원소를 대응시키는 것이었다.
또한 수학에서 이를 mapping이라고 하는 이유는
3차원인 실제 세계의 한 점을 2차원인 종이 위의 한 점에 대응시켜 만든 것이 지도이기 때문에
이러한 대응관계를 mapping이라고 한다고 한다.
참고)
https://dotiromoook.tistory.com/28
https://dev.to/techgirl1908/why-is-map-called-map-2l03
https://m.blog.naver.com/ycpiglet/222576548806
'💻☕프로그래밍 언어 > Python' 카테고리의 다른 글
파이썬 문자열을 거꾸로 출력하기 (0) | 2024.10.27 |
---|---|
파이썬 리스트 함수 삼형제 (pop, remove, index) (0) | 2024.10.27 |
파이썬 join 함수 간단 정리 (0) | 2024.10.27 |
파이썬 sort함수 사용법 간단 정리 (0) | 2024.10.18 |
파이썬으로 값을 입력 받는 방법들 (2) | 2024.09.01 |