map, lambda in Python

류기탁·2021년 12월 4일
0

Python

목록 보기
9/9

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)))

예시 3 : input()을 사용해서 입력받은 것을 바로 변환

  • 역시 자주 쓰인다.
    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) )))
  • 1 4 9 16 25 가 출력된다.

형식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 : 맵과 같이 사용하기

  • x값을 제곱하기
list(map(lambda x: x**2, range(5)))
profile
오늘도 행복한 하루!

0개의 댓글