μ½λ°± ν¨μλ λ€λ₯Έ ν¨μμ μΈμλ‘ μ λ¬λμ΄, μ΄λ€ μ΄λ²€νΈλ νΉμ 쑰건μμ μ€νλκ² νλ ν¨μλ₯Ό λ§νλ€. μ½λ°± ν¨μλ μ£Όλ‘ λΉλκΈ° μμ μ΄λ νΉμ μ΄λ²€νΈ λ°μ μμ μ μ΄λ€ λμμ μνν λ μ¬μ©λλ€.

def callback_func(func):
for i in range(5):
func()
def print_hello():
print('μλ
νμΈμ! νμ΄μ¬')
print_hello()
> μλ
νμΈμ! νμ΄μ¬
callback_func(print_hello)
> μλ
νμΈμ! νμ΄μ¬
μλ
νμΈμ! νμ΄μ¬
μλ
νμΈμ! νμ΄μ¬
μλ
νμΈμ! νμ΄μ¬
μλ
νμΈμ! νμ΄μ¬
def callback_func(func, num):
for i in range(num):
func(i)
def print_hello(num):
print('μλ
νμΈμ νμ΄μ¬!', num)
def print_hi(num):
print('μλ
νμ΄μ¬!', num)
callback_func(print_hello, 3)
> ]
callback_func(print_hello, 3)
μλ
νμΈμ νμ΄μ¬! 0
μλ
νμΈμ νμ΄μ¬! 1
μλ
νμΈμ νμ΄μ¬! 2
callback_func(print_hi, 5)
> μλ
νμ΄μ¬! 0
μλ
νμ΄μ¬! 1
μλ
νμ΄μ¬! 2
μλ
νμ΄μ¬! 3
μλ
νμ΄μ¬! 4
λλ€ ν¨μλ νμ΄μ¬μμ μ΅λͺ μ κ°λ¨ν ν¨μλ₯Ό μμ±νκΈ° μν νΉλ³ν ꡬ문μ΄λ€. 'μ΅λͺ μ ν¨μ'λΌλ κ²μ ν¨μμ κ³ μ ν μ΄λ¦μ΄ μ§μ λμ§ μμμμ μλ―Ένλ€. λλ€ ν¨μλ μΌλ°μ μΈ ν¨μ(defλ₯Ό μ¬μ©νμ¬ μ μ)μλ λ¬λ¦¬, ν μ€λ‘ ννλλ μ§§κ³ κ°κ²°ν ν¨μλ₯Ό μμ±ν λ μ£Όλ‘ μ¬μ©λλ€.
def square(x):
return x**2
print(square(5))
> 25
square = lambda x: x**2
print(square(5))
> 25
(lambda x: x**2)(5)
> 25
people = [
{'name':'μ 민콩', 'age' : 3},
{'name':'μ μ 콩', 'age' : 7},
{'name':'μ ν콩', 'age' : 5}
]
def sort_age(x):
return x['age']
def sort_age(x):
return x['age']
print(sort_age(people[0]))
> 3
sorted_people = sorted(people, key = sort_age) # keyμλ μ½λ°±ν¨μλ‘ μ μ₯ (ν¨μμ μ΄λ¦μΌλ‘ μ μ₯)
print(sorted_people) # λμ΄λ³λ‘ μ€λ¦μ°¨μ
# κ·Έλ°λ° sort_age ν¨μλ μ΄ ν¨μ μΈμ μ°μΌ μΌμ΄ μμ -> λ©λͺ¨λ¦¬ λλΉ
# μ΄λ΄ λ λλ€ ν¨μ μ¬μ©
> [{'name': 'μ 민콩', 'age': 3}, {'name': 'μ ν콩', 'age': 5}, {'name': 'μ μ 콩', 'age': 7}]
filter()λ νμ΄μ¬μ λ΄μ₯ ν¨μλ‘, μ£Όμ΄μ§ ν¨μμ 쑰건μ λ§μ‘±νλ νλͺ©λ§μΌλ‘ μ΄λ£¨μ΄μ§ μ΄ν°λ μ΄ν°λ₯Ό λ°ννλ€. μ΄ ν¨μλ μ£Όλ‘ λ¦¬μ€νΈλ λ€λ₯Έ μμ°¨μ μΈ λ°μ΄ν° νμ μμ νΉμ 쑰건μ λ§μ‘±νλ νλͺ©λ€λ§μ νν°λ§ν λ μ¬μ©λλ€.
li = [2, 5, 7, 10, 15, 17, 20, 22, 25, 28]
def even(n):
if n % 2 == 0:
return True
else:
return False
filter(even, li) # μ΄ν°λ μ΄ν° κ°μ²΄λ‘ μΆλ ₯
> <filter at 0x7b4fd9a656c0>
result = list(filter(even, li)) # μ΄ν°λ μ΄ν° κ°μ²΄λ₯Ό 리μ€νΈλ‘ λ³νν΄μ£Όλ©΄ λ¨
print(result)
> [2, 10, 20, 22, 28]
list(filter(lambda n: n % 2 == 0 , li)) # λλ€ ν¨μλ‘ λ κ°λ¨νκ² μ¬μ© κ°λ₯
> [2, 10, 20, 22, 28]
map()λ νμ΄μ¬μ λ΄μ₯ ν¨μλ‘, μ£Όμ΄μ§ ν¨μλ₯Ό μ΄ν°λ¬λΈμ λͺ¨λ νλͺ©μ μ μ©νμ¬ κ²°κ³Όλ₯Ό λ°ννλ μλ μ΄ν°λ₯Ό μμ±νλ€. μ΄ ν¨μλ μ£Όλ‘ λ¦¬μ€νΈλ λ€λ₯Έ μμ°¨μ μΈ λ°μ΄ν° νμ μ νλͺ© κ°κ°μ ν¨μλ₯Ό μ μ©ν λ μ¬μ©λλ€.
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x**2, numbers)) # μμ μλ 곡μμ λ€μ μλ λͺ¨λ μμμ μ μ©ν΄μ 리ν΄. filter ν¨μμ λ§νκ°μ§λ‘ μ΄ν°λ μ΄ν°λ₯Ό 리ν΄νκΈ° λλ¬Έμ μνλ μλ£νμΌλ‘ λ³κ²½ν΄μ€μΌν¨
print(squared_numbers)
> [1, 4, 9, 16, 25]
li1 = [1, 2, 3]
li2 = [4, 5, 6]
sum = list(map(lambda x, y: x+y, li1, li2))
print(sum)
> [5, 7, 9]
words = ['apple', 'banna', 'cherry']
upper_words = list(map(lambda x: x.upper(), words))
print(upper_words)
> ['APPLE', 'BANNA', 'CHERRY']