# 일반 함수
def fn_plus(x, y):
return x + y
fn_plus_val = fn_plus(10, 2)
print(fn_plus_val)
# 람다 함수
lambda_plus_val = (lambda x, y : x + y)(10, 2)
print(lambda_plus_val)
12
12
# 입력받은 수를 제곱하기
lst = [1, 2, 3]
# 일반 함수
def fn_square(x):
return x**2
fn_square_val = list(map(fn_square, lst))
print(fn_square_val)
# 람다 함수
lambda_square_val = list(map((lambda x : x**2), lst))
print(lambda_square_val)
[1, 4, 9]
[1, 4, 9]
# 3의 배수만 리스트로 만들기
rng = range(0, 7)
# 일반함수
def fn_filter(x):
return x % 3 == 0
fn_filter_val = list(filter(fn_filter, rng))
print(fn_filter_val)
# 람다함수
lambda_filter_val = list(filter((lambda x : x % 3 == 0), rng))
print(lambda_filter_val)
[0, 3, 6]
[0, 3, 6]
# 5 이상이면 Good, 2 이하이면 Bad, 나머지는 Soso 저장
rng = range(9)
# 일반 함수
def fn_condition(x):
if x >= 5:
return 'Good'
elif x <= 2 :
return 'Bad'
else:
return 'Soso'
fn_condition_val = list(map(fn_condition, rng))
print(fn_condition_val)
# 람다 함수
lambda_condition_val = list(map((lambda x : 'Good' if x >= 5 else 'Bad' if x <= 2 else 'Soso'), rng))
print(lambda_condition_val)
['Bad', 'Bad', 'Bad', 'Soso', 'Soso', 'Good', 'Good', 'Good', 'Good']
['Bad', 'Bad', 'Bad', 'Soso', 'Soso', 'Good', 'Good', 'Good', 'Good']
D2_list = [['수학', 3], ['수학_활용', 5], ['영어', 4], ['영어회화', 7], ['슬기로운생활', 2], ['도덕', 3], ]
# 첫 번째 인자를 기준으로 오름차순 정렬
D2_list.sort(key=lambda x : (x[0]))
print('첫 번째 인자 기준 오름차순')
print(D2_list)
# 두 번째 인자를 기준으로 내림차순 정렬
D2_list.sort(key=lambda x : (-x[1]))
print('\n두 번째 인자 기준 내림차순')
print(D2_list)
첫 번째 인자 기준 오름차순
[['도덕', 3], ['수학', 3], ['수학_활용', 5], ['슬기로운생활', 2], ['영어', 4], ['영어회화', 7]]
두 번째 인자 기준 내림차순
[['영어회화', 7], ['수학_활용', 5], ['영어', 4], ['도덕', 3], ['수학', 3], ['슬기로운생활', 2]]
출처
lambda 함수를 사용해서 딕셔너리에 대한 정렬도 할 수 있다. 몇 번째 인자를 기준으로 정렬할지, 오름/내림차순 정렬 여부도 동일하게 사용할 수 있다.
예)
sorted(sample_dict.items(), key=lambda x : -x[1])