함수를 정의하는 다른 방식.

함수명을 정의하지 않고 함수를 만드는 방식

return을 따로 표시하지 않음.

Creating a function using Lambda expressions

my_sqr_function = lambda x: x * x
my_sqr_function(5) # 25

my_adder = lambda x, y : x+y
my_adder(1, 2) # 3

Combining lambda with map

my_list [1, 2, 3, 4, 5]
my_sqr_list = map(my_sqr_function, my_list) # [1, 4, 9, 16, 25]

my_str_list = ['hello', 'world', 'bye']
my_modified_list = list(map(lambda x: x + '!!!!!', my_str_list)) # ['hello!!!!!', 'world!!!!!', 'bye!!!!!!']

Combining lambda with filter

my_list = [1, 2, 3, 4, 5]
my_filtered_list = list(filter(lambda x: x%2 == 0, my_list)) # [2, 4]

Using lambda with sort

my_dict_list = [{'name': 'a', 'age': 1},
								{'name': 'b', 'age': 3},
								{'name': 'c', 'age': 2}]
sorted(my_dict_list, key=lambda x: x['age']) # [{'name': 'a', 'age': 1},
																						 #	{'name': 'c', 'age': 2},
																						 #	{'name': 'b', 'age': 1}]

Nesting Lambda expressions

add_suffix = lambda suffix: (lambda my_str: my_str + " " + suffix)
add_world = add_suffix("world")
add_wordl("hello") # "hello world"