함수와 람다 표현식
global 키워드
변수에 global 키워드를 지정하면, 해당 함수에선 지역 변수를 만들지 않고 함수 바깥에 선언된 변수를 바로 참조하게 됨.
a = 0
def func():
global a # 바깥의 변수 a를 참조한다.
a += 1
- 참고: 전역변수로 선언된 리스트 객체의 내부 메서드를 수행하는 것은 오류없이 수행 가능하다.
array = [1, 2, 3, 4, 5]
def func():
array.append(6)
print(array)
func()
여러 개의 반환값
- 파이썬에서의 함수는 여러개의 반환값을 가질 수 있다. (’패킹’이라고 함. 다시 담는 건 ‘언패킹’.)
def operator(a, b):
add_var = a + b
subtract_var = a - b
multiply_var = a * b
divide_var = a / b
return add_var, subtract_var, multiply_var, divide_var
a, b, c, d = operator(7, 3)
print(a, b, c, d)
람다 표현식
- 함수를 간단하게 작성할 수 있다. (이름없는 함수)
- 함수 자체를 입력으로 받는 함수에서 유용하게 사용 / 함수가 간단하거나 한번 쓰고 말 때
def add(a, b):
return a + b
#일반적인 add() 메서드 사용
print(add(3, 7))
# 람다 표현식으로 구현한 add() 메서드
print((lambda a, b: a + b)(3, 7))
# 예시1: sort() 함수를 사용해 정렬할 때 유용하게 사용할 수 있다.
array = [('홍길동', 50), ('이순신', 32), ('아무개', 74)]
# 람다 없이 함수 만들어 사용
def my_key(x):
return x[1]
print(sorted(array, key=my_key))
# 람다 사용 시.
print(sorted(array, lambda x: x[1]))
예시2) 여러개의 리스트에 적용하기
# 각 list별 같은 인덱스끼리 더하고 싶다.
list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 8, 9, 10]
result = map(lambda a, b: a + b, list1, list2)
print(list(result))
# 결과
# [7, 9, 11, 13, 15]
실전에서 유용한 표준 라이브러리
자주 사용되는 내장 함수
- sum(), min(), max(), eval()
- sorted() : 각 원소를 정렬한 결과를 반환함.
# sorted()
result = sorted([9, 1, 8, 5, 4]) # 오름차순
reverse_result = sorted([9, 1, 8, 5, 4], reverse=True) # 내림차순
# sorted() with key : 정렬 기준을 명시할 수 있다.
# 두번째 원소를 기준으로 내림차순 정렬하기
array = [('홍길동', 35), ('이순신', 75), ('아무개', 50)]
result = sorted(array, key=lambda x: x[1], reverse=True)
'개발 > 파이썬' 카테고리의 다른 글
[Python] 문법 기초 - 순열과 조합 (0) | 2025.01.09 |
---|---|
[Python] 문법 기초 - 조건문과 반복문 (0) | 2025.01.09 |
[Python] 문법 기초 - 기본 입출력 (0) | 2025.01.09 |
[Python] 문법 기초 - 자료형 (0) | 2025.01.09 |
파이썬 - 함수 만들기 (리스트에서 소수만 출력해보기) (0) | 2024.12.31 |