map
- map(f, iterable)은 함수 f와 반복가능한(iterable) 자료형을 입력으로 받는다.
- 입력받은 자료형의 각 요소를 f가 수행한 결과를 묶어서 돌려주는 함수이다.
- 출력은 리스트이다!
map(적용시킬 함수, 적용시킬 요소)
map(함수, 리스트)
예시 1 : 리스트 데이터 두배 하기
def two_times(alist):
result = []
for number in alist:
result.append(number*2)
return result
result1 = two_times([1,2,3,4])
print(result1)
def two_times2(nn):
return nn*2
list2 = map(two_times2, [1,2,3,4])
print(list(list2))
예시 2 : 자료형 변환하기
- 코테에서 입력 받을 때 자주 쓰인다.
a = [1.2, 2.5, 3.7, 4.6]
print(list(map(int,a)))
- 역시 자주 쓰인다.
a = map(int, input().split())
lambda
- 자바에서도 쓰이는 람다식
- 함수를 재사용하지 않을 거라면 lambda로 바꿀 수 있다.
- 함수를 한줄로 표현해버린다.
def add(x) : return x + 10
add2 = lambda x : x + 10
형식 1 : 변수가 2개 일 때
print((lambda x,y : x + y)(10,20))
형식2 : range()를 사용할 때
print(list(map(lambda x : x **2 , range(6) )))
형식4 : 두 가지 조건을 줄 때
- listt를 길이순으로 정렬하고, 같은 길이에서는 알파벳으로 정렬한다.
listt = ['ab','bc','cd','aaa','bca']
sorted(listt, key = lambda x : (len(x), x))
형식5 : lambda if 함수 사용방법
- if 문이 true 일때 앞부분, else 일때는 뒷부분
def score(x) :
if x > 80:
return 'pass'
else :
return 'fail'
score2 = lambda x : 'pass' if x>= 10 else 'f'
형식6 : 맵과 같이 사용하기
list(map(lambda x: x**2, range(5)))