lambda

Sang Jun Lee·2020년 6월 30일
0

lambda

람다는 한줄로 함수를 작성하게 해줍니다.

lambda 인자 : 표현식

위와 같이 표현이 되고 몇가지 예시를 통해 활용법을 보도록 하겠습니다.

>>> def hap(x, y):
...   return x + y
...
>>> hap(10, 20)
30

위의 함수를 람다로 표현하면 아래와 같습니다.

>>> (lambda x,y: x + y)(10, 20)
30

map() 함수와 같이 사용해보겠습니다.

>>> list(map(lambda x: x ** 2, range(5)))     # 파이썬 2 및 파이썬 3
[0, 1, 4, 9, 16]

map 함수는 리스트에서 원소를 하나씩 꺼내서 함수를 적용시킨 결과를 새로운 리스트에 담아주니까, 위의 예제는 0을 제곱하고, 1을 제곱하고, 2, 3, 4를 제곱한 것을 새로운 리스트에 넣어주는 것입니다.

이번에는 reduce() 함수와 같이 보겠습니다.

>>> from functools import reduce   # 파이썬 3에서는 써주셔야 해요  
>>> reduce(lambda x, y: x + y, [0, 1, 2, 3, 4])
10

먼저 0과 1을 더하고, 그 결과에 2를 더하고, 거기다가 3을 더하고, 또 4를 더한 값을 돌려줍니다.

filter() 함수와의 사용법도 보겠습니다.

>>> list(filter(lambda x: x < 5, range(10))) # 파이썬 2 및 파이썬 3
[0, 1, 2, 3, 4]

0 에서 9 사이의 숫자중 5 보다 작은 수만 살려 리스트에 담아줍니다.

Assignment

1. 다음 코드를 실행해보고 print문으로 출력되는 출력결과를 확인해보고 types 모듈에 LambdaType 외에도 어떤 타입들이 있는지 조사해 보세요.

import types

f = lambda x,y,z : x+y+z

print(f)
print(type(f))
print( type(f) == types.LambdaType)

결과값

<function <lambda> at 0x033E90B8>
<class 'function'>
True

types 모듈에 속해 있는 타입

types.FunctionType
types.LambdaType - The type of user-defined functions and functions created by lambda expressions.
types.GeneratorType - The type of generator-iterator objects, produced by calling a generator function.
types.CodeType - The type for code objects such as returned by compile().
types.MethodType - The type of methods of user-defined class instances.
types.BuiltinFunctionType
types.BuiltinMethodType - The type of built-in functions like len() or sys.exit(), and methods of built-in classes. (Here, the term “built-in” means “written in C”.)
types.ModuleType - The type of modules.
types.TracebackType - The type of traceback objects such as found in sys.exc_info()[2].
types.FrameType - The type of frame objects such as found in tb.tb_frame if tb is a traceback object.
types.GetSetDescriptorType - The type of objects defined in extension modules with PyGetSetDef, such as FrameType.f_locals or array.array.typecode. This type is used as descriptor for object attributes; it has the same purpose as the property type, but for classes defined in extension modules.
types.MemberDescriptorType - The type of objects defined in
extension modules with PyMemberDef, such as datetime.timedelta.
days. This type is used as descriptor for simple C data members
which use standard conversion functions; it has the same purpose
as the property type, but for classes defined in extension modules.
profile
Live now and Dream better tomorrow

0개의 댓글