728x90
lambda
lambda 함수는 익명 함수로
단발적으로 쓰이는 함수를 말한다.
이때 함수를 아주 간단하게 쓰면 lamda가 된다고 생각하면 쉽다.
다음과 같은 식을,
def add(x):
return x+10
아래와 같이 바꾸어 줄 수 있다.
add = lambda x: x+10
if 문 등도 사용할 수 있는데,
def score(x):
if x>=80:
return 'pass'
else:
return 'f'
score= lambda x: 'pass' if x>=60 else 'f'
if문이 ture일 때를 앞부분, else 일 때를 뒤에 적어주면 된다.
이런 lamda는 다양하게 사용되는데,
그 중에서도 sort메소드와 함께 사용되는 경우가 많다.
sort
strings = [(2, 0), (3, 1), (1, 2)]
strings.sort() #정렬 방법 1
sort_string = sorted(strings) #정렬 방법2
#[(1, 2), (2, 0), (3, 1)]
첫번째 정렬방법은 strings 자체를 변화시키는 거고
후자는 sorted함수를 선언했기 때문에 return 값을 담을 변수가 필요합니다.
이때 정렬할 때 특정 조건을 줄 수 있는데,
strings = [(2, 0), (3, 1), (1, 2)]
strings.sort(key = lambda x : x[0])
string_sorted = sorted(strings, key = lambda x : x[0])
lamda함수의 key 인자를 통해 가능하다.
다중조건을 주고 싶을 때는 튜플 형식으로 앞에오는 것을 우선 조건으로하여 만들 수 있다.
# 아이템 첫 번째 인자를 기준으로 오름차순으로 먼저 정렬하고,
# 그리고 그 안에서 다음 두 번째 인자를 기준으로 내림차순으로 정렬한다.
strings = [(2, 0), (3, 1), (1, 2), (1, 0)]
strings.sort(key = lambda x : (x[0],-x[1]))
string_sorted = sorted(strings, key = lambda x : (x[0],-x[1]))
#[(1, 2), (1, 0), (2, 0), (3, 1)]
'개발 > Python' 카테고리의 다른 글
파이썬 함수, def, Class (1) | 2020.06.25 |
---|---|
리스트, 딕셔너리 함수 - 추가, 삭제, 길이, 정렬 (0) | 2020.06.23 |
파이썬 문자열 내장함수 - 길이, 특정 문자 개수, 나누기 (0) | 2020.06.23 |
파이썬 자료형 - 리스트, 튜플, 딕셔너리 차이 (1) | 2020.06.19 |
파이썬 자료형- 숫자형 자료형, 문자형 자료형 (0) | 2020.06.04 |
댓글