1. 람다함수
함수의 이름 없이, 함수처럼 사용할 수 있는 익명의 함수
- 앞에는 매개변수의 이름, 뒤에는 매개변수가 반환하는 결과값 작성
- 람다는 직관적이지 않기 때문에 추천되는 방법은 아니다. 코드를 알아볼 수 있는 정도만 공부한다.
# 일반적인 함수
def f(x, y):
return x + y
f(1, 4)
# 람다 함수
f = lambda x,y : x+y
print(f(1,4))
2. 맵리듀스
1) map() 함수 : 연속데이터를 저장하는 시퀀스 자료형에서 요소마다 같은 기능을 적용할 때 사용
- list를 붙여야 리스트로 반환 (generator 개념 강화)
- 람다, map 함수보다 리스트 컴프리헨션이 권장되고 있음
# 람다함수와 맵함수 이용
ex = [1,3,5,7,9]
a = lambda x : x**3
list(map(a,ex))
[1, 27, 125, 343, 729]
# 리스트 컴프리헨션 이용
ex = [1,3,5,7,9]
[x**3 for x in ex]
[1, 27, 125, 343, 729]
2) reduce() 함수 : 리스트 같은 시컨스 자료형에 차례대로 함수를 적용하여 모든 값을 통합하는 함수
# reduce 함수
from functools import reduce
reduce(lambda x,y : x+y, [1,2,3,4,5])
15
# 같은 결과
x=0
for y in [1,2,3,4,5]:
x+=y
print(x)
15
3. 별표의 활용(asterisk)
- 곱하기, 제곱 연산
- 가변 인수 : 함수의 매개변수 개수를 정하지 않고 진행할 때 -> 변수의 순서대로 튜플로 저장
- 키워드 가변 인수 : 매개변수의 이름도 따로 지정하지 않고 입력할 때 -> 딕셔너리 자료형 저장
- 언패킹 : 한 변수에 여러 개의 데이터가 들어 있을 때 그것을 각각의 변수로 반환
#가변 인수
def asterisk_test(a,*args):
print(a,args)
print(type(args))
asterisk_test(1,2,3,4,5,6)
1 (2, 3, 4, 5, 6)
<class 'tuple'>
#키워드 가변 인수
def asterisk_test(a,**kargs):
print(a,kargs)
print(a,type(kargs))
asterisk_test(1,b=2,c=3,d=4)
1 {'b': 2, 'c': 3, 'd': 4}
1 <class 'dict'>
# 별표의 언패킹 기능
# 변수 앞에 별표를 붙이면 여러 개의 변수를 한 번에 넣을 수 있는 컨테이너 역할을 함
# 가변 인수로 언패킹
def asterisk_test(a, args):
print(a, *args)
print(type(args))
asterisk_test(1, (2,3,4,5,6))
1 2 3 4 5 6
<class 'tuple'>
# 키원드 가변 인수로 언패킹
def asterisk_test(a,b,c,d):
print(a,b,c,d)
data = {"b":1,"c":2,"d":3}
asterisk_test(10,**data)
10 1 2 3
'Data Science > python' 카테고리의 다른 글
open() 함수로 텍스트 파일 읽기/쓰기/추가하기/만들기 (0) | 2021.12.24 |
---|---|
예외 처리 구문 : try-except 구문 (0) | 2021.12.24 |
객체 지향 프로그래밍 (0) | 2021.12.23 |
pandas 데이터프레임에 컬럼 추가/제거 df['column'] ="Value" df.drop('column', axis=1, inplace=) (0) | 2021.12.22 |
파이썬 스타일 코드 (0) | 2021.12.22 |