일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- react
- c++
- DRF
- 알고리즘 풀이
- 장고
- 파이썬
- django widget
- AWS
- 알고리즘 연습
- Django
- 파이썬 알고리즘
- MAC
- java
- js
- web
- 백준
- javascript
- Git
- 알고리즘
- Algorithm
- django ORM
- es6
- HTML
- CSS
- form
- django rest framework
- Baekjoon
- PYTHON
- API
- 알고리즘 문제
- Today
- Total
수학과의 좌충우돌 프로그래밍
python map() 함수에 대해 알아보자! 본문
안녕하세요 강민성입니다.
오늘은 파이썬 기본 문법에 대해서 알아보고자 합니다.
그 중에서도 map 함수에 대해서 알아보겠습니다.
저는 알고리즘 공부를 하다가 map 함수가 도움이 많이 되었습니다.
어떤 함수인지 같이 살펴보시죠!
map 함수에 대해서 알아보자!
map 함수는 두 가지 인자를 받게 됩니다.
첫 번째 인자로 함수를 받게 되고, 두 번째 인자로 반복가능한 자료형을 받게 됩니다.
map(function , iterable, ...)
같은 형태를 가집니다.
그리고 iterable 한 데이터 안의 각 item들을 함수 인자로 전달하여 결과를 반환하는 함수입니다.
여기서 반환 형태에 대해 기존 python2 에서 python3 으로 바뀌면서 변화가 있었습니다.
기존 python2에서는 list형으로 반환을 했지만 python3 에서는 generator 형으로 반환을 합니다.
generator 형이 무엇인지는 다음에 다시 알아보도록 하고 지금은 다시 list형으로 바꿔줘야한다!
라고만 기억하시면 될 것 같습니다.
그러면 map 함수의 쓰임을 보도록 하겠습니다.
1 2 3 4 5 6 7 8 | test = [1,2,3,4] def func(x): return x * 2 print(list(map(func, test))) # [2, 4, 6, 8] | cs |
1 2 3 4 5 | test = input().split() print(test) #['1', '2', '3', '4'] | cs |
입력을 받고 list로 바꿀 수 있었습니다.
하지만 이럴 경우, 리스트 안의 각 원소의 type이 int 가 아니라 str 인걸 확인 할 수 있습니다.
이럴 경우, 각 원소들을 int로 바꿔줘야 합니다.
1 2 3 4 5 6 7 8 | test = input().split() for i in range(len(test)): test[i] = int(test[i]) print(test) # [1, 2, 3, 4] | cs |
다음과 같이 반복문을 통해서 각 원소를 int 형으로 바꿔줄 수도 있지만
이 과정을 바로 map 함수가 대신 해주게 됩니다.
1 2 3 4 5 | test = list(map(int, input().split())) print(test) # [1, 2, 3, 4] | cs |
다음을 보도록 하겠습니다.
먼저 input().split() 을 통해
[ '1' , '2' ,'3' , '4']
다음과 같은 list가 생성이 될 것 입니다.
이제 map 함수를 통해 각 원소들을 int로 바꿔주고 다시 list로 바꿔주면
다음과 같이 원하는 값을 얻을 수 있을 겁니다.
마무리
알고리즘 공부를 처음 시작할 때는 값을 받고 변환하는 법도 몰라서
한참을 고생했던 것 같습니다.
데이터를 입력받고 원하는 형태로 만드는 것이 중요하니
map 함수에 대해 잘 숙지하고 열심히 공부 하시길 바랍니다.
감사합니다 :)
'프로그래밍 언어 > Python' 카테고리의 다른 글
[python] 장식자, 데코레이터(decorator) 를 알아보자 (8) | 2019.08.08 |
---|---|
[python]제너레이터(generator)를 알아보자 (0) | 2019.03.31 |
문자열 함수 find와 index (2) | 2018.12.30 |
Scoping , LEGB 룰 (0) | 2018.12.01 |
클래스와 인스턴스란? (3) 메소드 (0) | 2018.12.01 |