티스토리 뷰

<먼저 알아두기 : lambda>

 

lambda는 익명함수(이름이 없는 함수)를 사용하기 위해 이용됩니다. 

v = lambda 인수1, 인수2,.... : 식

=> 람다뒤에 인수, 콜론 그리고 실행할 식을 기술합니다.

 

#람다를 사용한 식
x2 = lambda x:x*2

#함수를 사용한 식
def x2: return x*2

lambda사용시, def와 return을 사용할 필요가 없다는 장점이있다.


<리스트를 다루는 map()과 filter()>

1. map과 함께 사용

nums = [1,3,5,7,9]
x2 = lambda x : x*2

a=list(map(x2,nums))
print(a)
#map을 사용해 nums를 x2의 형식에 맞춰서 list형식으로 저장됨
#결과 : [2, 6, 10, 14, 18]

map(function, iterable,...)

첫번째 인수 : 함수 오브젝트, 두 번째 인수 : 여러개의 값을 포함하는 데이터형

=> 첫번째 인수인 함수에 두 번째 인수에 저장된 값을 모두 적용하고 반환, list()를 함께 사용해 list형태로 만들어 손쉽게 사용가능

2. filter와 함께 사용

nums = [1,2,3,11,12,13,21,22,23]
a = list(filter(lambda x :(x%2)==1,nums))
#nums에 저장된 값들을 lambda를 사용해 받아오며 (x%2)==1과 같은 식에 참인 결과만 출력
print(a)
#출력 : [1, 3, 11, 13, 21, 23]
b = list(filter(lambda x: x>13, a))
print(b)
#출력 [21, 23]
c = list(filter(lambda x:x<23,b))
print(c)
#출력 [21]

filter(function,literable)

첫 번째 인수 : 함수 오브젝트, 두 번째 인수 : 여러개의 값을 포함하는 데이터형

=> 첫번째 인수인 함수에 두 번째 인수에 저장된 값을 모두 적용하고 그 값이 TRUE일때만(판별식을 사용해야할 때 filter를 자주 사용) list()와 함께 사용해 배열에 저장하고 쉽게 사용가능

 


<추가로 sorted와 함께 lamda를 알아보자>

정렬후 데이터형 변수=sorted(정렬하려는 여러개의 을 포함하는 데이터형, key = lambda표현식)이 일반적인 형태

animal_dict = {"사자":58, "치타":110,"얼룩말":60, "순록":80}

fast = sorted(animal_dict.items(),key = lambda x:x[1],reverse = True)
#dic데이터를 items()를 통해 튜플형태로 변환하여 사용했으므로 fast도 튜플형태

for name,speed in fast:
    print(name,speed)

 

[결과]

치타 110
순록 80
얼룩말 60
사자 58


리스트는 파이썬을 활용해 데이터처리 및 다양한 알고리즘에 필수!

lambda와 map(),filter(),sorted()를 함께 알아보며 공부하자!

'파이썬 > 파이썬 기초' 카테고리의 다른 글

구현  (0) 2021.07.25
그리디 알고리즘  (0) 2021.07.16
파이썬 기초 - 알아두면 유용  (0) 2021.03.24
정렬하기  (0) 2021.03.22
파이썬 기초 - 기초 문법 연습하기  (0) 2021.03.10