카테고리 없음
5일차-2
동동순이
2024. 3. 18. 17:28
콜백함수(callback function)
콜백 함수는 다른 함수에 인자로 전달되어, 어떤 이벤트나 특정 조건에서 실행되게 되는 함수를 말합니다. 콜백 함수는 주로 비동기 작업이나 특정 이벤트 발생 시점에 어떤 동작을 수행할 때 사용됩니다.
def callback_func(func):
for i in range(5):
func()
def print_hello():
print('안녕하세요 파이썬')
print_hello()
안녕하세요 파이썬
callback_func(print_hello)
안녕하세요 파이썬
안녕하세요 파이썬
안녕하세요 파이썬
안녕하세요 파이썬
안녕하세요 파이썬
print_hello를 콜백 함수에 집어넣으면 조건이 돌아가 5번 반복하게 된다.
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)
안녕하세요! 파이썬! 0
안녕하세요! 파이썬! 1
안녕하세요! 파이썬! 2
callback_func(print_hi, 5)
하이 파이썬 0
하이 파이썬 1
하이 파이썬 2
하이 파이썬 3
하이 파이썬 4
각각 숫자를 지정해주니 그 수만큼 반복된다.
람다 함수(Lambda Function)
람다 함수는 파이썬에서 익명의 간단한 함수를 생성하기 위한 특별한 구문입니다. "익명의 함수"라는 것은 함수에 고유한 이름이 지정되지 않았음을 의미합니다. 람다 함수는 일반적인 함수(def를 사용하여 정의)와는 달리, 한 줄로 표현되는 짧고 간결한 함수를 생성할 때 주로 사용됩니다.
def square(x):
return x ** 2 #람다의 특징은 무조건 리턴형 임
square(5)
25
square= lambda x: x ** 2 # 람다도 저장가능
print(square(4))
16
(lambda x: x ** 2)(5)
25
def sort_age(x):
return x['age'] #한번 쓰고 버릴 일회용 함수
people = [{'name': '김사과', 'age': 20}, {'name': '반하나', 'age': 25}, {'name': '오렌지', 'age': 30}]
sorted_people=sorted(people, key=sort_age)
print(sorted_people)
[{'name': '김사과', 'age': 20}, {'name': '반하나', 'age': 25}, {'name': '오렌지', 'age': 30}]
people 변수안에 있는 age를 키값에 따라 오름차순으로 정리해서 나타내줘 라는뜻.
people = [{'name': '김사과', 'age': 20}, {'name': '반하나', 'age': 25}, {'name': '오렌지', 'age': 30}]
sorted_people=sorted(people, key=lambda x:x['age'])
print(sorted_people)
[{'name': '김사과', 'age': 20}, {'name': '반하나', 'age': 25}, {'name': '오렌지', 'age': 30}]
람다가 유용하게 사용되는 대표적인 함수
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)
[2, 10, 20, 22, 28]
result = list(filter(lambda x:x%2==0, li))
print(result)
위와 똑같은 결과 값이 나온다.
map 함수
map()는 파이썬의 내장 함수로, 주어진 함수를 이터러블의 모든 항목에 적용하여 결과를 반환하는 이터레이터를 생성합니다. 이 함수는 주로 리스트나 다른 순차적인 데이터 타입의 항목 각각에 함수를 적용할 때 사용됩니다.
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x**2, numbers))
print(squared_numbers)
[1, 4, 9, 16, 25]
list1 = [1, 2, 3]
list2 = [4, 5, 6]
summed = list(map(lambda x, y: x + y, list1, list2))
print(summed)
[5, 7, 9]
words = ['apple', 'banana','cherry']
uppercase_words=list(map(str.upper,words))
print(uppercase_words)
['APPLE', 'BANANA', 'CHERRY']