728x90
[Python] 매개 변수와 람다(lambda) 표현식
매개 변수 (parameter)
함수에 입력으로 전달된 값을 받는 변수
인수로 전달된 값을 함수 내부에서 사용할 수 있게 해주는 변수
🔎 인수 (argument)
함수가 호출될 때 함수로 값을 전달해줌
매개 변수 사용
1. 입력값을 받아서 사용
def 함수이름 (매개변수):
수행 할 문장
return 리턴값
def sub(a, b):
return a-b
print(sub(7, 3))
2. 입력받는 값이 몇개일 지 모를때
- 매개변수 이름 앞에 ' * ' 를 붙이면 입력값을 전부 모아서 튜플로 만들어 줌
def 함수이름 (*매개변수):
수행 할 문장
return 리턴값
def add_many(*args):
result = 0
for i in args:
result = result + i
return result
add_many(1, 2, 3)
add_many(1, 2, 3, 4, 5, 6)
3. 키워드 매개변수
- 매개변수 이름 앞에 ' ** ' 를 붙이면 매개변수는 딕셔너리가 되고, key=value 형태의 입력값이 저장됨
def 함수이름 (**매개변수):
수행 할 문장
return 리턴값
def print_kwargs(**kwargs):
print(kwargs)
print_kwargs(name='hw', age=25)
{'name': 'hw', 'age': 25}
매개 변수 초깃값 설정
- 매개변수에 미리 값을 넣어 줄 수 있음
- 초기화 시키고 싶은 매개변수는 항상 뒤쪽에 놓아야 함
def my_self(name, age=25):
print(f"나의 이름은 {name} 입니다.")
print(f"나의 나이는 {age} 입니다.")
my_self('hw')
나의 이름은 hw 입니다.
나의 나이는 25 입니다.
lambda
- 함수를 한줄로 간결하게 만들때 사용
- 함수를 사용해야 할 정도로 복잡하지 않거나, 함수를 사용할 수 없는 곳에 주로 쓰임
함수명 = lambda 매개변수1, 매개변수2, ... : 매개변수를 이용한 표현식
add = lambda a, b: a+b
print(add(2,3))
아래 함수와 동일
def add(a, b):
return a+b
lambda 조건부 표현식
- if, else를 사용할 때는 콜론을 붙이지 않음
- if를 사용했다면 반드시 else를 사용해야함, if만 사용하면 문법 에러 발생
- elif는 사용 불가
lambda 매개변수: 식1 if 조건식 else 식2
1️⃣ map
- 함수와 리스트를 인자로 받은 후, 리스트로부터 원소를 하나씩 꺼내 함수에 적용
- 결과를 새로운 리스트에 저장
EX) 리스트 a에서 3의 배수를 문자열로 변환
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list(map(lambda x: str(x) if x % 3 == 0 else x, a))
[1, 2, '3', 4, 5, '6', 7, 8, '9', 10]
2️⃣ filter
- 반복 가능한 객체에서 특정 조건에 맞는 요소만 가져옴
- filter에 지정한 함수의 반환값이 True일 때만 해당 요소를 가져옴
EX) 5보다 크고 10보다 작은 수 가져오기
a = [8, 3, 2, 10, 15, 7, 1, 9, 0, 11]
list(filter(lambda x: x > 5 and x < 10, a))
[8, 7, 9]
3️⃣ reduce
- 반복 가능한 객체의 각 요소를 지정된 함수로 처리한 후 이전 결과와 누적해서 반환
EX) 리스트에 저장된 요소를 순서대로 더한 뒤 누적된 결과를 반환
from functools import reduce
a = [1, 2, 3, 4, 5]
reduce(lambda x, y: x + y, a)
15
참조
반응형
'👩💻 Develope > Python' 카테고리의 다른 글
[Python] 리스트의 요소를 분리하기 (0) | 2023.04.13 |
---|---|
[Python] Shell에 명령어 전달하기 (0) | 2023.04.12 |
[Python] 민감 정보 분리해서 사용하기 (config 파일 분리) (0) | 2023.04.07 |
[Pandas] 데이터프레임 정렬하기 (0) | 2023.04.06 |
[Pandas] 데이터프레임에서 대칭 차집합 구하기 (0) | 2023.04.05 |