Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Algorithm
- hackerrank
- [sqld]자격증합격
- 백준
- Find the nearest clone
- 매칭점수
- python
- BFS: Shortest Reach in a Graph
- Recursion: Davis' Staircase
- 격파르타 합격후기
- 해커랭크
- Common Child
- 머신러닝
- candies
- 알고리즘
- 피보나치 함수
- 격파르타 장점
- 야근지수
- DFS: Connected Cell in a Grid
- 프로그래머스
- Max Array Sum
- Roads and Libraries
- Interview Preparation Kit
- 격파르타 후기
- programmers
- 파이썬
- 코딩테스트
- Reverse Shuffle Merge
- Special String Again
- 구슬탈출2
Archives
- Today
- Total
Archive
[파이썬 기초] 익명함수 본문
1. 함수 오브젝트
- 함수도 오브젝트이다.
- 함수를 변수에 대입하거나, 다른 함수의 인자로 지정할 수 있으며, 반환값으로도 사용할 수 있다.
1 2 3 4 5 6 7 | # 함수를 변수에 def mul_func(a, b): return a*b # 함수를 변수에 대입. func = mul_func # 대입한 변수를 함수처럼 사용한다. print(func(2, 3)) | cs |
1 2 3 4 5 6 7 8 9 10 11 12 | # 함수를 함수의 인자로 지정하기 def mul_func(a, b) : return a*b # 인수로 받은 함수를 5, 3 인자를 줘 리턴하는 함수. def calc_5_3(func): return func(5, 3) # mul_func(5, 3)과 같은 결과 print(calc_5_3(mul_func)) # 15 | cs |
2. 익명함수
- 람다 이용하기
v = lambda 인수1, 인수2, 인수3, ... : 식
- 람다식의 반환값은 함수 오브젝트가 된다.
1 2 3 | x2 = lambda x: x*2 x2(2) # 4 | 3.cs |
3. map()과 filter()
- 람다를 많이 쓰는곳은 함수 오브젝트를 인수로 받는 함수를 작성할 때다.
- 리스트 각 요소를 처리할 때 map과 filter를 쓰고, 이때 람다식을 많이 사용한다.
- map
map( function, iterable, ... )
# function에는 함수 오브젝트를, iterable에는 여러 값을 가진 리스트나 튜플 데이터형을 넣어준다.
# function을 iterable 각 요소에 적용하고 결과를 반환한다.
1 2 3 4 5 6 7 8 | nums = [1, 3, 5, 7, 9] x2 = lambda x : x * 2 list(map(x2, nums)) # [2, 6, 10, 14, 18] list(map( lambda x : x * 3, nums )) # [3, 9, 15, 21, 27] | -cs |
- filter
filter( function, iterable )
# function에는 함수 오브젝트를, iterable에는 리스트나 튜플 데이터형을 넣어준다.
# function을 iterable 모든 요소에 적용하고 결과가 True인 요소들만 반환한다.
1 2 3 | nums = [1, 2, 4, 6, 7] list(filter(labmda x : (x%2)==0, nums ) #[2, 4, 6] | cs |
3. sorted()
sorted ( iterable[,key], [,reverse])
# iterable은 리스트나 튜플과 같은 자료형을, key에는 익명 함수를, 세 번째 reverse에는 True나 False를 넘겨준다.
# default로 오름차순으로 나열하지만, True를 넘겨주면 내림차순으로 나열한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | # 튜플 리스트 정렬하기 animal_list = [ ("사자", 58), ("치타", 110), ("얼룩말", 60), ("순록", 80), ] faster_list = sorted( animal_list, # (동물이름, 속도) 중에서 속도를 기준으로 정렬하겠다는 의미이다. ( key ) key = lambda ani : ani[1], # 내림차순으로 정렬하겠다는걸 의미한다. reverse = True ) for i in faster_list : print(i) # ('치타', 110) # ('순록', 80) # ('얼룩말', 60) # ('사자', 58) | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # dictionary 정렬하기 animal_dict = { "사자": 58, "치타": 110, "얼룩말": 60, "순록": 80 } li = sorted( # dictionary데이터에 items()메서드를 실행하면 튜플 리스트로 변환된다. animal_dict.items(), key = lambda x : x[1], reverse = True ) for name, speed in li: print(name, speed) # 치타 110 # 순록 80 # 얼룩말 60 # 사자 58 | cs |
'공부 > Python' 카테고리의 다른 글
[파이썬 기초] 모듈 (0) | 2017.10.02 |
---|---|
[파이썬 기초] iterator, generator (0) | 2017.10.02 |
[파이썬 기초] 함수 - 가변 개수 인수 (0) | 2017.10.02 |
[파이썬 기초] 문자열 자르고 붙이기 (0) | 2017.10.02 |
[파이썬 기초] Dictionary (0) | 2017.10.02 |
Comments