콜백 함수란 다른 함수에 인수로 전달되어 특정 작업이 끝난 후 호출되는 함수를 의미합니다. 어떤 작업이 완료된 후에 자동으로 호출되도록 미리 준비해둔 함수입니다. 따라서 직접적으로 호출하지 않고 특정 조건이나 이벤트가 발생할 때 실행되도록 설정합니다.
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_hi, 5)
람다 함수는 파이썬에서 익명의 간단한 함수를 생성하기 위한 특별한 구문입니다. "익명의 함수"라는 것은 함수에 고유한 이름이 지정되지 않았음을 의미합니다. 람다 함수는 일반적인 함수(def를 사용하여 정의)와는 달리, 한 줄로 표현되는 짧고 간결한 함수를 생성할 때 주로 사용됩니다.
lambda 매개변수: 표현식
간결성: 람다 함수는 간단한 연산이나 작은 기능을 가진 함수를 간결하게 표현하는 데 유용합니다.
익명성: 람다 함수에는 명시적인 이름이 부여되지 않습니다. 그러나 필요에 따라 변수에 할당할 수 있습니다.
일회성: 일반적으로 특정 작업을 위한 일회성 함수로 사용됩니다.
def square(x):
return x**2
print(square(5))
square = lambda x: x**2
print(square(5))
(lambda x: x**2)(5)
people = [
{'name':'오렌지', 'age':30},
{'name':'김사과', 'age':20},
{'name':'반하나', 'age':25}
]
def sort_age(x):
return x['age']
people[0]
print(sort_age(people[0]))
sorted_people = sorted(people, key=sort_age)
print(sorted_people)
sorted_people = sorted(people, key=sort_age, reverse=True)
print(sorted_people)
sorted_people = sorted(people, key=lambda x: x['age'])
print(sorted_people)
filter()는 파이썬의 내장 함수로, 주어진 함수의 조건을 만족하는 항목만으로 이루어진 이터레이터를 반환합니다. 이 함수는 주로 리스트나 다른 순차적인 데이터 타입에서 특정 조건을 만족하는 항목들만을 필터링할 때 사용됩니다.
li = [2, 5, 7, 10, 15, 17, 20, 22, 25, 28]
def even(n):
if n%2 == 0:
return True
else:
return False
result = list(filter(even, li))
print(result)
result = list(filter(lambda n: n%2 == 0, li))
print(result)
map()는 파이썬의 내장 함수로, 주어진 함수를 이터러블의 모든 항목에 적용하여 결과를 반환하는 이터레이터를 생성합니다. 이 함수는 주로 리스트나 다른 순차적인 데이터 타입의 항목 각각에 함수를 적용할 때 사용됩니다.
num = [1, 2, 3, 4, 5]
squared_num = list(map(lambda x: x**2, num))
print(squared_num)
li1 = [1, 2, 3]
li2 = [4, 5, 6]
sum = list(map(lambda x, y: x+y, li1, li2))
print(sum)
words = ['apple', 'banana', 'orange', 'cherry']
upper_words = list(map(lambda x: x.upper(), words))
print(upper_words)
map() 함수는 결과를 이터레이터 형태로 반환하기 때문에 그 결과를 직접 출력하거나, 인덱싱하거나, 슬라이싱하기 위해서는 list()나 비슷한 함수를 사용하여 이터레이터를 실제 리스트나 다른 데이터 구조로 변환해야 합니다.