728x90
def plus_ten(x):
return x + 10
print(plus_ten(2))
람다 표현식은 이름이 없는 함수이기 때문에 람다 표현식을 익명 함수(anonymous function)로 부르기도 한다.
plus_lambda = lambda x : x + 10
print(plus_lambda(2))
람다 표현식은 변수에 할당하지 않고 람다 표현식 자체를 바로 호출할 수 있다. 다음과 같이 람다 표현식을 ( )(괄호)로 묶은 뒤에 다시 ( )를 붙이고 인수를 넣어서 호출하면 된다.
print((lambda x: x + 10)(2))
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = list(map(lambda x: str(x) if x % 3 == 0 else x, a))
# 람다 표현식 안에서는 elif를 사용할 수 없다.
print(b)
# [1, 2, '3', 4, 5, '6', 7, 8, '9', 10]
|
# lambda 식 : 메모리 절약, 가독성 향상, 코드 간결
# 함수는 객체이므로 객체를 생성하면 리소스(메모리) 할당된다.
# 람다는 즉시 실행(Heap 초기화) -> 메모리 초기화
lambda_mul_10 = lambda num: num * 10
print('>>>', lambda_mul_10)
def func_final(x,y,func):
print(x * y * func(10))
func_final(10,10,lambda_mul_10)
print(func_final(10,10, lambda x: x * 1000))
|
# 필터 함수(람다 활용)
a = list(range(100))
b = filter(lambda number: number % 2 ==0, a)
print(a)
print(list(b))
|
# 예제 2 (map 함수)
# map 함수는 기존 리스트를 기반으로 새로운 리스트 생성
a = list(range(100))
b = map(lambda number: number * number, a)
print(list(b))
# list comprehension
print([i * i for i in a if i % 2 == 0])
|
numbers = list(range(1,10+1))
print("#홀수만 추출하기")
print(list(filter(lambda x: x % 2 == 1,numbers)))
print()
print("# 제곱해서 50미만 추출하기")
print(list(filter(lambda x : (x ** 2) < 50,numbers)))
print()
print("# 3 이상 7 미만 추출하기")
print(list(filter(lambda x : 3<= x < 7, numbers)))
|
728x90
'파이썬 > Python 기초' 카테고리의 다른 글
[Python] MariaDB 연결 (0) | 2021.05.20 |
---|---|
csv 파일 다루기 (0) | 2021.05.11 |
[파이썬기초] list comprehension (0) | 2021.05.04 |
[파이썬기초] 1회용 함수 (reversed(), enumerate(), items()) (0) | 2021.05.04 |
[파이썬기초] 모듈과 패키지 (0) | 2021.04.05 |